【问题标题】:WinDbg symbol load issueWinDbg 符号加载问题
【发布时间】:2013-02-14 01:38:48
【问题描述】:

我正在使用 WinDbg 从托管代码(C#,为 Any CPU 构建的控制台应用程序)加载故障转储。我在 x64 平台上调试。我已将相关的PDB 文件放入符号路径中。

但是当我使用lm命令查看加载模型时,无法加载控制台EXE文件应用的符号。我尝试执行.reload /f,但仍然无法为我的应用程序加载符号。

顺便说一句:我有我的应用程序的完整源代码。我的应用程序是为.NET 3.0 构建的,但我正在调试的机器安装了最新的 .NET 3.5 + SP1。不匹配可能是问题吗?

如何进一步分析这个问题?

【问题讨论】:

    标签: c# .net windbg


    【解决方案1】:

    首先,我会尝试使用!sym noisy,然后重新加载模块。您应该会看到它正在尝试加载的模块的信息。如果您有本地缓存​​,您可能看到的常见状态是E_PDB_CORRUPT。先从本地缓存中删除符号文件,然后使用.reload /f。

    如果找不到符号,请确保您有可用的正确符号包或Use the Microsoft Symbol Server to obtain debug symbol files。

    【讨论】:

    • 如果需要显示.cs文件的行号信息(执行clrstack等命令时),是否需要设置源文件路径?我的困惑是我很困惑 Windbg 是否能够从托管代码 (EXE/DLL) 或相关 PDB 文件中提取行号信息?
    • 谢谢Kris,你的回复给了我很多帮助。我听从了你的建议,但有一个新问题,如果你能看一下,不胜感激。我的新问题发布在这里,stackoverflow.com/questions/1552927/…
    猜你喜欢
    • 2015-01-02
    • 2016-12-25
    • 2015-02-18
    • 2011-11-06
    • 2017-03-14
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 2020-07-19
    相关资源
    最近更新 更多