dump文件保存了程序崩溃的现场信息,对于软件工程师排查问题非常有用,dump文件如果是本机编译生成也在本机运行产生的,那么直接用vs打开点击运行就可以定位崩溃的地方,然后就可以看到相应崩溃时的堆栈信息从而快速定位问题。
然而dump文件如果不是在本机生成的而是在另外的机器运行时产生的,再把其后缀为.dump的文件拷到本机然后用vs打开,这时你会发现看不到崩溃时相应的堆栈信息,只有一下汇编先关的定位。这是就会产生一个疑问:dump文件在其它机器定位不了问题?如果真是如此,那微软搞这一套还有什么用?唯一的解释就是你的方法不对,下面我们来说说正确的方法:
1.编译完软件后,发布前要将相应的.pdb文件保存起来
2.发布时,exe文件也是需要保存的
3.编译时,你动态加载的dbghelp.dll也是需要同时保存
4.软件崩溃后产生的dump文件
将这四个文件放在相同的目录,然后用vs打开dump文件,再点击运行,这时就可以看到崩溃时的堆栈了。