2

我正在使用 windbg 分析转储文件所在的另一台计算机上的内存转储。在工具的命令行中,我输入了以下内容:

.loadby w3core w3core

这是错误:

调用 LoadLibrary(c:\windows\system32\inetsrv\w3core.dll) 失败,Win32 错误 0n126 “找不到指定的模块。” 请检查您的调试器配置和/或网络访问

更新:我创建转储文件的过程是 w3wp.exe。我认为这是针对 IIS 的。它是 IIS 工作进程。因此,w3core.dll 必须与 IIS 工作进程相关。

只是为了查看我的步骤,我使用调试诊断工具来监视计算机 A 上特定进程的崩溃。(计算机 A 运行的是 Windows Server 2003 Standard 32 位、IIS 6;未安装 ASP.NET。)这次崩溃创建了一个内存转储文件。我将此转储文件复制到安装了调试诊断工具和 windbg 的计算机 B。在计算机 B 上,我在调试诊断工具的高级分析选项卡中添加了转储文件,然后单击“开始分析”按钮。分析总结报告:

the module c:\WINDOWS\system32\inetsrv\32.core.dll has caused an access violation     
exception(0xC0000005) when trying to read from memory location 0x53534553 on thread 4

我打开了windbg并添加了符号文件路径

SRV*downstream_store*http://msdl.microsoft.com/download/symbols

然后,我打开转储文件并输入上述命令,它吐出上述错误。我可以保证该文件确实存在。

问题是什么?是不是因为我在计算机 B 上调试,而实际上转储文件来自计算机 A?除此之外,我不确定我做错了什么。

为什么我不能加载这个模块?非常感谢您的帮助。

4

1 回答 1

0

假设您可以找到 dll(如果您找不到,也可以解释一下),尝试在依赖( http://www.dependencywalker.com/ )中加载 w3core 。如果它缺少任何依赖的 dll,它应该在那里显示。

于 2013-06-14T05:56:41.153 回答