1、引言
本文就最近遇到的一个异常崩溃实例,详细介绍了使用Windbg分析问题和解决问题的过程。另外,本文主要讲解dump的静态分析,至于将Windbg动态挂载到目标进程中去动态调试的内容,不是本文讲解的范畴,如需了解,可查阅本专栏中相关的文章。
2、问题描述
最近两天软件频繁的出现崩溃,崩溃的上下文都是一样的,我在看其他问题时也遇到过两次。据负责异常分析的同事说,是底层的组件层回调的一个消息携带的数据的内存地址有问题,导致上层在处理这个消息时产生了崩溃,这个问题已经交由组件层去跟踪排查。因为崩溃比较频繁,想看一下到底是怎么回事,于是向负责异常分析的同事要来dump文件,分析一下看看情况。
3、windbg的初分析
拿来dump文件,找到对应版本的pdb文件,用windbg打开dump文件,使用.excr命令切换到异常上下文,找到最后执行的以后一条汇编(引起崩溃的那条汇编指令):