无法找到模块'mscorwks.dll'。

32

我尝试使用WinDBG来调试一个dump文件。当我运行.loadby sos mscorwks.dll命令时,它出现了错误信息:无法找到'mscorwks.dll'模块。

有人见过这种情况吗?

5个回答

122

如果您正在调试一个.NET 4.0应用程序,需要使用以下命令替代mscorwks

.loadby sos clr

这里提供了不同版本的完整.NET框架可用的命令的很好概述。祝愉快!


19

我也遇到了这个问题,原因是调试器在CLR加载之前就进入了应用程序。在我能够执行任何操作之前,我必须让应用程序进一步运行。

在windbg中执行以下操作可能会有所帮助:

sxe ld:mscorlib
g
(... breaks again ...)
.loadby sos mscorwks

'sxe ld:...' 在模块加载时停止。

正如 Sixto 提到的,如果您正在调试 .NET 4 应用程序,则需要将最后一行替换为

.loadby sos clr

是的,这正是我的问题。它太早中断了。我不需要自己加载 mscorlib,只需让应用程序再运行一段时间(直到遇到“Console.ReadLine()”),然后在“.loadby sos mscorwks”之前输入“g”。 - Erti-Chris Eelmaa

14
不要添加.dll,尝试只使用.loadby sos mscorwks

7
这仍然给我一个错误信息:“无法找到'mscorwks.dll'模块”。 - MaxJ
1
这仍然给我一个错误消息:“无法找到模块'mscorwks.dll'”。 - Maxim Kitsenko

3

同时确保你的位数正确 - 在调试32位应用程序时尝试在64位Windbg中执行此操作将导致相同的错误。


2
如果您的路径中包含 .NET 框架目录(例如 c:\Windows\Microsoft.NET\Framework\v2.0.50727),则可以直接使用以下命令:
.load sos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接