【问题标题】:Using Windbg to Analyze Dump File: What Path Should I set in Symbol File Path?使用Windbg分析转储文件:符号文件路径应该设置什么路径?
【发布时间】:2009-12-19 07:13:30
【问题描述】:

在我的 VS 2008 崩溃后,我使用 procdump 创建了一个转储文件。我怀疑这是 Resharper 的问题,所以我需要生成足够的信息供 Resharper 修复。

现在,当我打开我的 Windbg 时,我需要设置符号文件路径。根据documentation,我必须将其设置为:

SRV*your local folder for symbols*http://msdl.microsoft.com/download/symbols

但由于我正在调查 resharper 中的问题,我不应该从 Resharper 应用程序目录中获取 pdb 文件,而不是下载 VS 2008 或 Microsoft dll 符号吗?

或者,换句话说,我只需要 Resharper pdb 符号,不需要 Microsoft 的符号 因为是 Resharper 导致了崩溃,对吗?

【问题讨论】:

    标签: windbg


    【解决方案1】:

    符号路径可以包含多个位置。使用.sympath+ <newpath> 添加到现有符号路径。你可以有一个像c:\applicationpath; c:\librariespath; SRV*c:\localcache*http://someserver; SRV*c:\localcache*http://somotherserver 这样的符号路径。

    【讨论】:

    • 谢谢,但我需要从 Microsoft 加载符号吗?
    • 是的。任何进程堆栈都会在某些 MS dll(ntdll、C/C++ 运行时等)上具有帧,并且您希望堆栈正确显示。没有正确的 pdb 可能会通过您的堆栈显示到 lala 土地。
    【解决方案2】:

    如果您没有所有 pdb,调试器引擎将默认导出符号。因此,对于源自没有关联符号文件的模块的调用,调用堆栈将显示相对于模块导出的位置。

    只有一个用于 Resharper 的 pdb 会在其中显示正确的调用。对于其他 dll 中的调用,它将求助于导出。因此,如果您对 Resharper 中的调用感兴趣,那么仅使用符号就足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-28
      • 2014-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多