WinDbg符号加载问题
我正在使用 WinDbg 从托管代码(C#,为任何 CPU 构建的控制台应用程序)加载故障转储。我正在 x64 平台上进行调试。我已将相关的 PDB 文件放入符号路径中。
但是当我使用lm
命令查看加载模型时,无法加载控制台EXE文件应用程序的符号。我尝试执行 .reload /f
,但仍然无法加载应用程序的符号。
顺便说一句:我有我的应用程序的完整源代码。我的应用程序是为 .NET 3.0 构建的,但我正在调试的机器是安装了最新的 .NET 3.5 + SP1。不匹配可能是问题所在吗?
我如何进一步分析这个问题?
I am using WinDbg to load a crash dump from managed code (C#, a console application built for Any CPU). I am debugging on a x64 platform. I have put the related PDB file into the symbol path.
But when I use the lm
command to see load models, the symbol of the console EXE file application can not be loaded. I have tried to execute .reload /f
, but I still cannot load the symbol for my application.
BTW: I have the full source code for my application. My application is built for .NET 3.0, but the machine I am working on to debug is installed with lastest .NET 3.5 + SP1. Could the mismatch be the issue?
How do I analyze this problem further?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,我会尝试使用
!sym嘈杂
然后重新加载模块。您应该看到它尝试加载的模块的信息。如果您有本地缓存,您可能会看到的常见状态是E_PDB_CORRUPT
。首先从本地缓存中删除符号文件,然后使用.reload /f
。如果找不到符号,请确保您有正确的符号包可用或使用 Microsoft 符号服务器获取调试符号文件。
To start with, I would try using
!sym noisy
and then reloading the module. You should see information for the module that it is trying to load. If you have a local cache, a common status you may see isE_PDB_CORRUPT
. First delete the symbol file from the local cache and then use.reload /f
.If it can't find the symbol, ensure you have the proper symbol packages available or Use the Microsoft Symbol Server to obtain debug symbol files.