2009-10-10 54 views
0

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

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

顺便说一句:我有我的应用程序的完整源代码。我的应用程序是为.NET 3.0构建的,但我正在调试的计算机上安装了最新的.NET 3.5 + SP1。错配是否会成为问题?

如何进一步分析此问题?

回答

1

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

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

+0

如果需要显示.cs文件的行号信息(执行如clrstack之类的命令时),是否需要设置源文件路径?我的困惑是我很困惑Windbg是否能够从托管代码(EXE/DLL)或相关的PDB文件中提取行号信息? – George2 2009-10-11 16:23:39

+0

谢谢克里斯,你的回复给了我很多帮助。我遵循了你的建议,但有一个新问题,如果你可以看看,很感激。我的新问题张贴在这里, http://stackoverflow.com/questions/1552927/symbol-issue-when-debugging-c-code – George2 2009-10-12 05:53:02