使用 SOS 调试 .net
我使用 clrdump 创建了一个转储。当我使用 sos 查看它时,我加载 sos 然后运行 !dso,但是我得到的错误是:
PDB symbol for mscorwks.dll not loaded
但是,在模块窗口中它说该符号已加载。我已经从 MS 商店获取了最新的符号吗?
有人有什么想法吗?
谢谢,
达伦。
I have created a dump using clrdump. When I go to view it using sos, I load up sos and then run !dso, but the error I get is:
PDB symbol for mscorwks.dll not loaded
However, in the module window it says that the symbol is loaded. I have obtained the up to date symbols from the MS store?
Anybody any ideas?
Thanks,
Darren.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您实际上并不需要
mscorwks.dll
的符号才能使!dso
正常工作,但这里有一些有关如何获取符号的建议。您需要做的第一件事是验证您是否设置了符号路径?您可以使用
.sympath
命令查看符号路径的当前设置。您可以下载所有符号并将符号路径指向光盘上的位置,也可以仅使用在线符号服务器。无论哪种情况,符号路径都必须指向正确的位置。您可以使用
.symfix
命令指向 Microsoft 的公共符号服务器,这可能是获取符号的最简单方法(前提是您可以在线访问)。使用 lm 命令查看模块及其符号。如果模块旁边显示
pdb Symbols
,则一切正常。请记住,WinDbg 只会根据需要加载符号,因此对于很多模块,您可能会看到延迟
。您可以使用.reload /f
命令强制加载所有模块的符号。要解决符号加载问题,请使用
!sym Noise
命令。它会告诉您调试器试图在哪里找到 PDB 文件。You don't really need symbols for
mscorwks.dll
for!dso
to work correctly, but here's some advice on how to get the symbols.First thing you need to do is to verify that you did set the symbol path? You can view the current setting for the symbol path using the
.sympath
command. You can either download all the symbols and point the symbol path to the location on the disc, or just use the online symbol server. In either case the symbol path must point to the correct location.You can use the
.symfix
command to point to Microsoft's public symbol server, which is probably the easiest way to get symbols (provided you have online access).Use the
lm
command to see modules and their symbols. If it sayspdb symbols
next to a module everything is okay. Keep in mind that WinDbg will only load symbols as needed, so for a lot of modules you will probably seedeferred
. You can force loading symbols for all modules using the.reload /f
command.To troubleshoot loading of symbols use the
!sym noisy
command. It will tell you where the debugger is trying to locate the PDB files.