最近一个程序老在客户那边自动跳出
检查代码又没检查出来
就开始研究怎么看dump文件
选好编译设置
rebuildall后,在本地建立和客户机程序所在路径的相同路径, 比如待调试文件在客户端路径是d:/test/test1.exe
则在本地建立一个同样的目录, 把生成的pdb文件和test1.exe都拷贝到本地的对应目录
到调试为止不要再改动代码(windbg需要exe,pdb,源码时间对应才能好好工作)
上传test1.exe到客户机
在远程机上运行待抓取程序(test1.exe)
启动命令行,进入windbg安装文件夹(*1)
运行
adplus -crash -pn test1.exe -o c:/dumps
有waring提示按确定
这样,当test1.exe挂掉会抓取到dmp文件在c:/dumps下
拷贝到本机任意地方,用windbg打开等待>提示符出现按k即可看到跳出前的堆栈调用(windbg需先设置符号服务器:
打开windbg,按ctrl+s, 输入 SRV*c:/websymbols*http://msdl.microsoft.com/download/symbols )
注意: 本地相应文件夹的exe,pdb文件要和产生dump文件的exe文件对应
注1: 远程机上其实装了只是要用里面的adplus抓crash dump