目录
2.2、使用.ecxr命令切换到发生异常的线程上下文,查看发生异常的那条汇编指令
2.3、使用kn/kv/kp命令查看异常发生时的函数调用堆栈
2.4、使用lm命令查看模块的时间戳,找到对应的pdb文件,设置到Windbg中
4.3、找到pdb文件,设置到windbg中,查看完整的函数调用堆栈
4.4、可以将C++源代码路径设置到Windbg中,Windbg会自动跳转到源代码行号上
4.5、有时需要查看函数调用堆栈中函数的局部变量或C++类对象中变量的值
4.6、有时可能需要使用IDA去查看二进制文件的汇编代码上下文去辅助分析
C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...)
https://blog.youkuaiyun.com/chenlycly/article/details/125529931C/C++基础与进阶(专栏文章,持续更新中...)
https://blog.youkuaiyun.com/chenlycly/category_11931267.htmlVC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)
https://blog.youkuaiyun.com/chenlycly/article/details/124272585C++软件分析工具从入门到精通案例集锦(专栏文章,持续更新中...)
https://blog.youkuaiyun.com/chenlycly/article/details/131405795开源组件及数据库技术(专栏文章,持续更新中...)
https://blog.youkuaiyun.com/chenlycly/category_12458859.html网络编程与网络问题分享(专栏文章,持续更新中...)
https://blog.youkuaiyun.com/chenlycly/category_2276111.html 有很多正在学习C++软件调试技术的朋友或者刚入门的人,希望我能详细讲讲使用Windbg静态分析dump文件的一般步骤,他们好对照这个步骤去练习去实操。所以今天就来讲讲这个主题内容,先概要性讲述Windbg静态分析dump文件的一般步骤,然后再以一个问题分析实例详细展现分析dump文件的完整过程(与本课程相关的免费视频教程,已经发布到B站,具体地址见本文的的评论区)。
1、概述
基本大部分软件都内置了异常捕获模块,在软件发生异常闪退崩溃时,会弹出相关的提示框,比如PC版的微信在崩溃时,其内置的异常捕获模块会捕获到异常并生成日志及dump文件,同时会弹出如下的发送错误报告的提示框:

提示框的下方会自动带上崩溃相关的文件,其中最后一个文件就是我们要讲的dump文件,点击确定则会将这些文件发送到腾讯远端的后台服务器上。腾讯后台的运维人员会收到通知,然后到服务器上将dump等文件下载下去分析。
有些软件可能没有上传崩溃日志到服务器的功能,捕捉到异常时会自动将dump文件保存到指定的路径中,事后可以到该路径中取到对应的dump文件。如果客户机器上遇到崩溃,可以和客户联系,让客户帮忙从对应的路径中取来出dump文件发过去。
使用Windbg分析包含异常上下文的dump文件,属于静态分析,下面就来详细讲一下拿到dump文件之后如何使用Windbg去静态分析dump文件。
关于Windbg的下载安装及详细介绍,可以查看我之前写的文章:
本文详细介绍了使用Windbg静态分析dump文件的步骤,包括查看异常类型、切换线程上下文、查看函数调用堆栈、加载pdb文件。通过实例展示了如何分析异常汇编指令,利用kn/kv/kp命令,以及如何借助pdb文件和源码定位问题。文章还提及了使用IDA辅助分析的可能性。
订阅专栏 解锁全文
8045





