我正在分析一个已创建的 .dmp 文件,并且我有一个调用堆栈,它为我提供了很多信息。但我想双击调用堆栈,让它把我带到源代码。
我可以右键单击调用堆栈并选择符号设置。我可以将位置放入 PDB。但是源代码目录没有选项。
我正在分析一个已创建的 .dmp 文件,并且我有一个调用堆栈,它为我提供了很多信息。但我想双击调用堆栈,让它把我带到源代码。
我可以右键单击调用堆栈并选择符号设置。我可以将位置放入 PDB。但是源代码目录没有选项。
不幸的是,源代码目录被硬编码到 pdb 中,但是如果您知道所需的文件夹,您可以使用 windows 的符号链接、连接概念。
我使用工具Junction Link Magic
阅读这篇文章,了解如何在您的站点上设置源服务器(又名 SrcSrv)集成。
我花时间为我们的代码库执行这些步骤,现在我们可以从过去 6 个月内我们软件的任何版本中获取一个 .dmp 文件......获取带有符号的堆栈跟踪......并查看确切的调试器中的源代码行。由于这些步骤已集成到我们的自动化构建中,因此现在开销很小。
我确实需要为 ClearCase 编写一个自定义索引器,但他们已经为 Perforce、TFS 和其他人编写了预先存在的索引器。
值得注意的是,VS2005 中对 .dmp 的支持有点不稳定。在 VS2008 中它更稳定一些。
除了您自己的符号服务器之外,您还需要配置 Visual Studio 以从此处获取 MS 产品的符号:
http://msdl.microsoft.com/download/symbols
这在一些地方进行了描述,例如Windows 调试工具站点。
Windbg 允许您设置与 PDB 路径相同的源路径。
加载 PDB 后,手动导航到与当前执行位置匹配的源文件。PDB 包含构建其关联二进制文件的源文件的路径和文件名,我怀疑调试器足够聪明,当它注意到正在显示的文件名和与当前二进制位置关联的文件名匹配时,它可以连接起来。