是否有任何VC++设置我应该知道生成包含更多信息的更好的PDB文件?
我有一个基于项目crashrpt的崩溃转储分析系统.
另外,我的生产构建服务器在D:\上安装了源代码,但是我的开发机器在C:\上有源代码.我在VC++设置中输入了源路径,但是当查看崩溃的调用堆栈时,它不会自动跳转到我的源代码.我相信如果我在D:\上有我的开发机器的源代码,那就行了.
"我应该知道任何VC++设置吗?"
确保关闭帧指针ommision.Larry osterman的博客提供了有关fpo及其调试问题的历史细节.
符号已成功加载.它显示了callstack,但双击一个条目并没有带我到源代码.
您使用的是什么版本的VS?(或者你使用的是Windbg?)...在VS中,如果找不到位置,它应该第一次提示源.然而,它还保留了一个"未找到"的源列表,因此它不会每次都询问您.有时不看列表是一种痛苦......要获得提示备份,您需要转到解决方案资源管理器/解决方案节点/属性/调试属性并在下部窗格中编辑文件列表.
最后,您可能正在使用"剥离符号".这些是生成的pdb文件,用于提供调试信息以使调用堆栈走过FPO,但源位置被剥离(以及其他数据).Windows OS组件的公共符号是剥离的pdbs.对于你自己的代码,这些只会导致痛苦并且不值得,除非你提供你的pdbs到外部.你怎么会有这些可怕的剥离的pdbs之一?如果使用带有-a命令的"binplace",则可以使用它们.
祝好运!适当的迷你转储故事是生产调试的天赐之物.