当查看内存转储的调用堆栈时,如何在VS中指定源代码目录
how do I specify the source code directory in VS when looking at the call stack of a memory dump?
我正在分析一个创建的.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包含构建其关联二进制文件的源文件的路径和文件名,我怀疑调试器足够聪明,当它注意到显示的文件名和与当前二进制位置关联的文件名匹配时,它可以将事情挂起。
相关文章:
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 在Linux中哪里可以找到互斥、未来等的源代码
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 数据成员SFINAE的C++17测试:gcc vs clang
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- 如果编译的源代码是特定于它编译的硬件的,我们如何分发它
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 正在VS调试器中监视映射条目
- Confusion: decltype vs std::function
- 将IBM Rhapsody模型集成到VS 2019中
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 使用VS Code和CMake Tools运行自定义命令
- 难以理解某些人解决IOI问题的源代码
- 修改 VS Code 中的默认C++代码段
- 如何使用c++在VS 2019上运行SQL查询
- vs 2015 constexpr变量不恒定,但与2019相比还好吗
- 使用g++编译hdf5源代码
- visual studio-VS 2012 C++:我可以使用源代码而不是符号进行调试吗
- 当查看内存转储的调用堆栈时,如何在VS中指定源代码目录