visual-studio - 任何推荐的 VC++ 设置,以便更好地对发布版本进行 PDB 分析

标签 visual-studio visual-c++ pdb-files crashrpt

是否有任何我应该知道的 VC++ 设置来生成包含更多信息的更好的 PDB 文件?

我有一个基于项目 crashrpt 的故障转储分析系统。 .

另外,我的生产构建服务器在 D:\上安装了源代码,但我的开发机器在 C:\上安装了源代码。我在 VC++ 设置中输入了源路径,但是在查看崩溃的调用堆栈时,它不会自动跳转到我的源代码。我相信如果我在 D:\上有我的开发机器的源代码,它会起作用。

最佳答案

"Are there any VC++ settings I should know about"



确保关闭 Frame pointer ommision。 Larry osterman 的博客有 the historical details关于 fpo 以及它导致的调试问题。

Symbols are loaded successfully. It shows the callstack, but double clicking on an entry doesn't bring me to the source code.



你用的是什么版本的VS? (或者你在使用Windbg?)......在VS中,如果它没有找到位置,它应该第一次提示源。但是,它还保留了一个“未找到”的来源列表,因此它不会每次都询问您。有时不要查看列表很痛苦...要备份提示,您需要转到解决方案资源管理器/解决方案节点/属性/调试属性并在下部 Pane 中编辑文件列表。

最后,您可能正在使用“剥离符号”。这些是生成的 pdb 文件,用于提供通过 FPO 遍历调用堆栈的调试信息,但源位置被剥离(以及其他数据)。 Windows 操作系统组件的公共(public)符号是剥离的 pdb。对于您自己的代码,这些只会导致痛苦并且不值得,除非您将 pdb 提供给外部。您将如何拥有这些可怕的剥离 pdb 之一?如果您将“binplace”与 -a 命令一起使用,您可能会拥有它们。

祝你好运!一个适当的小型转储故事是生产调试的天赐之物。

关于visual-studio - 任何推荐的 VC++ 设置,以便更好地对发布版本进行 PDB 分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36127/

相关文章:

c# - 更改在 C# 中以编程方式创建的标签的文本?

c++ - 根据 Visual Studio 中的调试/发布配置自动#defines

c++ - WaitForMultipleObjects 会修改*多个*对象的状态吗?

c++ - 为什么在返回对象 Mat 时堆损坏?

ReSharper PdbNavigator 在符号服务器上找不到调试信息

javascript - Javascript 项目的 Visual Studio 构建事件

windows - 如何在 Microsoft Visual Studio 中使用 GCC?

visual-c++ - 我可以在我的设置中包含 "vcredist_x86.exe"

c# - 为什么我的 Service Fabric 代码会锁定它自己的 PDB?

asp.net - ASP.NET文件编译调试="false"时生成PDB文件?