关于PDB和dump文件进行调试的方法,现在总结一下:
1,PDB和dump的概念前面已经说过了,参照前面的文档。
2,另外记录一下另一个问题:在用vss调试时,出现了错误,比如除数是0,或者空指针等问题,vs有时候会中断,有时候不会中断。按照下图设置就会在出现错误时,程序中断:工具 --->选项:
3,PDB文件的获得参照上面介绍。
4,dump文件如何获得?两种方法,下面分别介绍。
(1) 假如客户机安装了vs开发环境。
首先,在客户机的注册表中,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug
这个目录下,添加下图的项。如下图:
其次,在客户机的注册表中,在HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug 这个目录下,添加下图的项。如下图:
最后,在客户机运行程序。
第一,如果出现错误,将会出现如下图的界面:
第二,选择红色框,点击 “是” 按钮,将会打开vs,然后按下图操作,将会保存一个dump文件。
第三,将 生成的dump文件,发给程序的开发者。
第四,程序的开发者一定是有源码的,将dump文件和exe,pdb文件发在同一个目录下,
第五,双击 dump文件,将会打开vs,如下图:
第六,点击 “使用 仅限本机 进行调试”,将会定位到出现错误的地方。如下图:这个仅仅是个例子,输入的时候输入b是0,当b是0的时候就会报错,所以定位到了改行。
(2) 客户机没有安装vs开发环境。
如果没有安装vs开发环境,就需要用到ntsd.exe,dbgend.dll,dbghelp.dll三个文件。这三个文件分64位和32位,不同的系统用不同的文件。如下图:
首先,在客户机的注册表中,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug
这个目录下,添加下图的项。如下图:(注意和上面的区别,Debugger的数据不一样)
其次,在客户机的注册表中,在HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug 这个目录下,添加下图的项。如下图:(注意和上面的区别,Debugger的数据不一样)
最后,在客户机运行程序。
第一,如果出现错误,将会出现如下图的界面:
第二,在D盘目录下,将会自动保存一个dump文件。(为什么是在D盘下面,因为注册表中的配置就是在D盘根目录下保存)。如下图:
第三,将 生成的dump文件,发给程序的开发者。
第四,程序的开发者一定是有源码的,将dump文件和exe,pdb文件发在同一个目录下,
第五,双击 dump文件,将会打开vs,如下图:
第六,点击 “使用 仅限本机 进行调试”,将会定位到出现错误的地方。如下图:这个仅仅是个例子,输入的时候输入b是0,当b是0的时候就会报错,所以定位到了改行。