DUMP文件调试
来源:互联网 发布:麻纱布料淘宝 编辑:程序博客网 时间:2024/05/13 19:44
一、vc6.0下
1、首先要生成pdb和map文件,需要做以下设置:
勾选红色的地方
按上面截图的设置好后编译即可。
二、dmp文件生成
1、dmp文件的生成,这个需要依赖一些代码来生成这个文件,这里就不贴代码了。
程序测试下这个函数。
上面代码让他人为崩溃,运行完后崩溃,会生成dmp文件。
三、windbg的配置和使用
1、先配置symbol(File \ Symbol File Path)
打开后填入C:\Symbols;SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
后面那个带链接的是第一次使用需要下载一些微软的支持库。后边使用就可以去掉了。
比如:C:\Symbols;D:\NoMi\worktest\TestDumpForVc\Debug
;;注意上面的“C:\Symbols;”,因为我在最上面已经把Symbols下载到C盘的Symbols了,所以可以把后面的http去掉,后边的;D:\NoMi\worktest\TestDumpForVc\Debug路径是pdb文件路径
注意路径不用包含pdb、exe的名字 比如到D:\\xxx\debug就行
2、配置源码路径( File \ Source File Path )
把代码路径贴进去就行了。比如“D:\worktest\TestDumpForVc”
3、设置Exe路径( File \ Image File Path )
填入执行程序路径,只要到目录层就行,例如“D:\worktest\TestDumpForVc\Release”
4.打开dmp文件
可以直接拖dmp进去,也可用下面的方式打开
5.打开后检测一些信息,然后输以下命令进行查看
l 打开dmp文件后会看到一些设置信息
l 输入命令!analyze -v
看到以下信息
再来对比下代码里的出问题的地方。
6.高版本的dmp文件设置
就拿2013来说
选择生成映射文件。
三、高版本的dmp文件调试。
1、高版本的可以用上面的方法进行windbg调试,也可以自身的编译器进行调试。
自身的编译器调试,dmp文件直接拖进去,然后,选择调试,如下图,他会定位出崩溃位置
四、map文件查看
1、map文件里存储的是各个函数的偏移地址。
当程序崩溃时,弹出的框里面会带有函数地址(winserver会弹出,win7好像不会有那种界面弹出),根据这个偏移地址就能找到相应的函数。
2、根据dmp文件提示出错的地址。去map里面找也能找着。比如
这里提示出错的地址是004014cb
打开map文件查看
根据上面出错的地址004014cb 找到地址范围,在下图中是
004014b0到004014e0中间。
从这就可以看出,是TestCrash到CreateDumpFile中间出错了。
再看下图的函数,找到问题所在。
- WINDBG调试DUMP文件
- 调试 core dump 文件
- WinDBG调试Dump文件
- VS2008调试dump文件
- dump文件调试
- ntsd调试dump文件
- VS2008调试dump文件
- 调试dump文件
- WinDbg调试dump文件
- vs2008 dump文件调试
- VS2008调试dump文件
- dump文件的调试
- VS2010调试dump文件
- DUMP文件调试
- VS2008调试dump文件
- Linux 调试 core dump文件
- 如何调试崩溃dump文件
- 如何调试崩溃dump文件
- Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for com
- 敌兵布阵(树状数组模板题)
- Spring MVC
- Struts2 常量自定义
- PHP错误机制
- DUMP文件调试
- __weak与__block修饰符到底有什么区别
- android找不到so包
- jqgrid表格列选项edittype为text、checkbox、select、textarea、function、超链接,添加自定义按钮
- B00015 平方矩阵问题
- Java 调用本地Native接口指引
- safari浏览器new date()兼容问题
- 计算机学科国际会议排名
- 四种常见的 POST 提交数据方式对应的 content-type 取值