注意事项,不注意一定会吃亏:
1,exe文件、dmp文件和pdb文件必须保持一致!也就说,只要你编译了,name对应的pdb和exe必须是同时生成的,哪怕代码没有编译,重新编译一次,导致dump的版本 和exe,pdb的版本不一致,也不行
2,关闭 编译时 c++代码优化功能
1,将程序编译好,该程序的debug目下保存有.pdb文件,将源代码和执行文件压缩好备份
2,将debug目录下所有的无关运行的文件删去,包括.pdb文件.然后发布出去
3,在其他机台上运行,程序然后崩溃,只拷贝回来 .dmp文件即可
4,在开发机台上,双击.dmp文件,摘要里会出现运行机台上进程名称,在开发机台上新建一样的路径,把步骤1备份的debug目录下全部拷贝到该模拟目录(直接把dmp文件放到和exe同一目录,就可以不用新建目录).
5,双击混合调试,进入代码即可调试

6,,如果代码位置有变更,此时会根据堆栈进入能找到的源代码,一般是qt的源代码,打开堆栈调试,选择第一行,双击.

7,在打开的窗体中,找到对应的.cpp文件所在的目录,即可进入

8,如果源代码已经变更,甚至连原先出错的代码也已经删掉,堆栈仍然会显示旧代码的第几行和错误提示

本文介绍在软件开发过程中,如何确保exe、dmp和pdb文件的一致性,避免因版本不匹配导致的调试问题。强调在编译时关闭C++代码优化功能的重要性,提供了一套详细的崩溃后调试流程,包括备份、删除无关文件、发布、收集.dmp文件、模拟调试环境等步骤。
2803

被折叠的 条评论
为什么被折叠?



