.loadby sos clr - 找不到指定的模块
.loadby sos clr - specified module could not be found
我试图弄清转储文件中的 CLR 异常是什么,但我在尝试执行时遇到问题:
0:000> .loadby sos clr
The call to LoadLibrary(C:\ProgramData\dbg\sym\clr.dll48A1EF9a0000\sos) failed, Win32 error 0n126
"The specified module could not be found."
我试图查看加载的内容,结果发现:
0:000> lm
start end module name
00000000`00190000 00000000`001a4000 MyTest (deferred)
00000000`77a00000 00000000`77afa000 user32 (deferred)
00000000`77b00000 00000000`77c1f000 kernel32 (pdb symbols) C:\ProgramData\dbg\sym\kernel32.pdb\CEE1211DAF10494CAFDDBE2C4232EAE82\kernel32.pdb
00000000`77c20000 00000000`77dca000 ntdll (pdb symbols) C:\ProgramData\dbg\sym\ntdll.pdbAAAEEE259C340FCADC53FAF9FEF22E92\ntdll.pdb
000007fe`f8950000 000007fe`f9ef1000 mscorlib_ni (deferred)
000007fe`f9f00000 000007fe`f9fd6000 MSVCR120_CLR0400 (deferred)
000007fe`f9fe0000 000007fe`fa980000 clr (pdb symbols) C:\ProgramData\dbg\sym\clr.pdb\E3E0C76A7909454FB3C56B0C2CE5FFEB2\clr.pdb
000007fe`fa980000 000007fe`faa1d000 mscoreei T (pdb symbols) C:\ProgramData\dbg\sym\mscoreei.pdbD65F80ABA3D403D8F6F7214972B9BBF2\mscoreei.pdb
000007fe`faa20000 000007fe`faa8f000 mscoree (deferred)
000007fe`fd800000 000007fe`fd80f000 CRYPTBASE (deferred)
000007fe`fdbb0000 000007fe`fdc1a000 KERNELBASE (pdb symbols) C:\ProgramData\dbg\sym\kernelbase.pdb\D396875654E9416CBA16E51F8B0A8B1E2\kernelbase.pdb
000007fe`fdd60000 000007fe`fde69000 msctf (deferred)
000007fe`fde70000 000007fe`fe073000 ole32 (deferred)
000007fe`fe0b0000 000007fe`fe121000 shlwapi (deferred)
000007fe`fe310000 000007fe`fe3da000 usp10 (deferred)
000007fe`fe3e0000 000007fe`fe47f000 msvcrt (deferred)
000007fe`fe480000 000007fe`fe48e000 lpk (deferred)
000007fe`fe590000 000007fe`fe5af000 sechost (deferred)
000007fe`fe600000 000007fe`fe62e000 imm32 (deferred)
000007fe`fe630000 000007fe`fe697000 gdi32 (deferred)
000007fe`fe910000 000007fe`fe9eb000 advapi32 (deferred)
000007fe`ff800000 000007fe`ff92d000 rpcrt4 (deferred)
更多地关注 clr:
0:000> lmvm clr
Browse full module list
start end module name
000007fe`f9fe0000 000007fe`fa980000 clr (pdb symbols) C:\ProgramData\dbg\sym\clr.pdb\E3E0C76A7909454FB3C56B0C2CE5FFEB2\clr.pdb
Loaded symbol image file: clr.dll
Mapped memory image file: C:\ProgramData\dbg\sym\clr.dll48A1EF9a0000\clr.dll
Image path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Image name: clr.dll
Browse all global symbols functions data
Timestamp: Fri Apr 11 22:16:15 2014 (5348A1EF)
CheckSum: 009A762B
ImageSize: 009A0000
File version: 4.0.30319.34209
Product version: 4.0.30319.34209
File flags: 8 (Mask 3F) Private
File OS: 4 Unknown Win32
File type: 2.0 Dll
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: Microsoft Corporation
ProductName: Microsoft® .NET Framework
InternalName: clr.dll
OriginalFilename: clr.dll
ProductVersion: 4.0.30319.34209
FileVersion: 4.0.30319.34209 built by: FX452RTMGDR
PrivateBuild: DDBLD104
FileDescription: Microsoft .NET Runtime Common Language Runtime - WorkStation
LegalCopyright: © Microsoft Corporation. All rights reserved.
Comments: Flavor=Retail
然后根据@Thomas Weller 的建议:
0:000> lmf m clr
Browse full module list
start end module name
000007fe`f9fe0000 000007fe`fa980000 clr C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
路径 (C:\Windows\Microsoft.NET\Framework64\v4.0.30319
) 存在于我的 PC 上并且里面有一个 SOS.dll
。
附加信息:
ld clr; .reload /f
没有帮助
- 我没有使用
.cordll
修改 CLR 加载路径
.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll
有效,但输入时间较长
为什么 .loadby sos clr
对我不起作用? (我刚刚从 https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit 安装了 WinDbg)通过选择从安装程序安装 "Debugging Tools for Windows")
如@Thomas Weller 所述,此解决方法目前有效:
.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll
使用我从@Thomas Weller 的问题中学到的知识找出答案。所以显然 File
-> Symbol File Path
中的 "Symbol File Path" 每次关闭 WinDbg 时都会被清除,没有它 .loadby sos clr
会产生我得到的错误。 File
-> Symbol File Path
中的 "Symbol File Path" 必须有一个条目,如: srv*C:\windbg\websymbols
(当然目录必须存在)。
当您打开故障转储时,它应该有以下输出
(注意这一行:Symbol search path is: srv*C:\windbg\websymbols
):
Microsoft (R) Windows Debugger Version 10.0.14321.1024 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:\Users\XXXXXX\Desktop\AppCrash_XXXXXXXXXXXXX_d4c077fd50acba44bd2aceb966fe5424b98f3e_cab_9eb7d2f5\WERC4D4.tmp.hdmp]
User Mini Dump File: Only registers, stack and portions of memory are available
************* Symbol Path validation summary **************
Response Time (ms) Location
Deferred srv*C:\windbg\websymbols
Symbol search path is: srv*C:\windbg\websymbols
Executable search path is:
Windows 7 Version 7601 (Service Pack 1) MP (4 procs) Free x64
Product: Server, suite: TerminalServer SingleUserTS
Machine Name:
Debug session time: Tue Aug 9 02:05:43.000 2016 (UTC - 4:00)
System Uptime: 79 days 17:08:17.121
Process Uptime: 0 days 0:00:06.000
另一方面,这是我之前的设置,这意味着您忘记设置 "Symbol File Path"(注意行 Symbol search path is: srv*
)
Microsoft (R) Windows Debugger Version 10.0.14321.1024 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:\Users\XXXXXX\Desktop\AppCrash_XXXXXXXXXXXXX_d4c077fd50acba44bd2aceb966fe5424b98f3e_cab_9eb7d2f5\WERC4D4.tmp.hdmp]
User Mini Dump File: Only registers, stack and portions of memory are available
Symbol search path is: srv*
Executable search path is:
Windows 7 Version 7601 (Service Pack 1) MP (4 procs) Free x64
Product: Server, suite: TerminalServer SingleUserTS
Machine Name:
Debug session time: Tue Aug 9 02:05:43.000 2016 (UTC - 4:00)
System Uptime: 79 days 17:08:17.121
Process Uptime: 0 days 0:00:06.000
WER 在我的案例中生成了 2 个文件:triagedump.dmp (2 MiB) 和 memory.hdmp (400 MiB)。
triagedump.dmp 仅包含异常信息,SOS 不适用于它。
memory.hdmp是minidump,SOS加载CLR成功。
我试图弄清转储文件中的 CLR 异常是什么,但我在尝试执行时遇到问题:
0:000> .loadby sos clr
The call to LoadLibrary(C:\ProgramData\dbg\sym\clr.dll48A1EF9a0000\sos) failed, Win32 error 0n126
"The specified module could not be found."
我试图查看加载的内容,结果发现:
0:000> lm
start end module name
00000000`00190000 00000000`001a4000 MyTest (deferred)
00000000`77a00000 00000000`77afa000 user32 (deferred)
00000000`77b00000 00000000`77c1f000 kernel32 (pdb symbols) C:\ProgramData\dbg\sym\kernel32.pdb\CEE1211DAF10494CAFDDBE2C4232EAE82\kernel32.pdb
00000000`77c20000 00000000`77dca000 ntdll (pdb symbols) C:\ProgramData\dbg\sym\ntdll.pdbAAAEEE259C340FCADC53FAF9FEF22E92\ntdll.pdb
000007fe`f8950000 000007fe`f9ef1000 mscorlib_ni (deferred)
000007fe`f9f00000 000007fe`f9fd6000 MSVCR120_CLR0400 (deferred)
000007fe`f9fe0000 000007fe`fa980000 clr (pdb symbols) C:\ProgramData\dbg\sym\clr.pdb\E3E0C76A7909454FB3C56B0C2CE5FFEB2\clr.pdb
000007fe`fa980000 000007fe`faa1d000 mscoreei T (pdb symbols) C:\ProgramData\dbg\sym\mscoreei.pdbD65F80ABA3D403D8F6F7214972B9BBF2\mscoreei.pdb
000007fe`faa20000 000007fe`faa8f000 mscoree (deferred)
000007fe`fd800000 000007fe`fd80f000 CRYPTBASE (deferred)
000007fe`fdbb0000 000007fe`fdc1a000 KERNELBASE (pdb symbols) C:\ProgramData\dbg\sym\kernelbase.pdb\D396875654E9416CBA16E51F8B0A8B1E2\kernelbase.pdb
000007fe`fdd60000 000007fe`fde69000 msctf (deferred)
000007fe`fde70000 000007fe`fe073000 ole32 (deferred)
000007fe`fe0b0000 000007fe`fe121000 shlwapi (deferred)
000007fe`fe310000 000007fe`fe3da000 usp10 (deferred)
000007fe`fe3e0000 000007fe`fe47f000 msvcrt (deferred)
000007fe`fe480000 000007fe`fe48e000 lpk (deferred)
000007fe`fe590000 000007fe`fe5af000 sechost (deferred)
000007fe`fe600000 000007fe`fe62e000 imm32 (deferred)
000007fe`fe630000 000007fe`fe697000 gdi32 (deferred)
000007fe`fe910000 000007fe`fe9eb000 advapi32 (deferred)
000007fe`ff800000 000007fe`ff92d000 rpcrt4 (deferred)
更多地关注 clr:
0:000> lmvm clr
Browse full module list
start end module name
000007fe`f9fe0000 000007fe`fa980000 clr (pdb symbols) C:\ProgramData\dbg\sym\clr.pdb\E3E0C76A7909454FB3C56B0C2CE5FFEB2\clr.pdb
Loaded symbol image file: clr.dll
Mapped memory image file: C:\ProgramData\dbg\sym\clr.dll48A1EF9a0000\clr.dll
Image path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Image name: clr.dll
Browse all global symbols functions data
Timestamp: Fri Apr 11 22:16:15 2014 (5348A1EF)
CheckSum: 009A762B
ImageSize: 009A0000
File version: 4.0.30319.34209
Product version: 4.0.30319.34209
File flags: 8 (Mask 3F) Private
File OS: 4 Unknown Win32
File type: 2.0 Dll
File date: 00000000.00000000
Translations: 0409.04b0
CompanyName: Microsoft Corporation
ProductName: Microsoft® .NET Framework
InternalName: clr.dll
OriginalFilename: clr.dll
ProductVersion: 4.0.30319.34209
FileVersion: 4.0.30319.34209 built by: FX452RTMGDR
PrivateBuild: DDBLD104
FileDescription: Microsoft .NET Runtime Common Language Runtime - WorkStation
LegalCopyright: © Microsoft Corporation. All rights reserved.
Comments: Flavor=Retail
然后根据@Thomas Weller 的建议:
0:000> lmf m clr
Browse full module list
start end module name
000007fe`f9fe0000 000007fe`fa980000 clr C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
路径 (C:\Windows\Microsoft.NET\Framework64\v4.0.30319
) 存在于我的 PC 上并且里面有一个 SOS.dll
。
附加信息:
ld clr; .reload /f
没有帮助- 我没有使用
.cordll
修改 CLR 加载路径 .load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll
有效,但输入时间较长
为什么 .loadby sos clr
对我不起作用? (我刚刚从 https://developer.microsoft.com/en-us/windows/hardware/windows-driver-kit 安装了 WinDbg)通过选择从安装程序安装 "Debugging Tools for Windows")
如@Thomas Weller 所述,此解决方法目前有效:
.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll
使用我从@Thomas Weller 的问题中学到的知识找出答案。所以显然 File
-> Symbol File Path
中的 "Symbol File Path" 每次关闭 WinDbg 时都会被清除,没有它 .loadby sos clr
会产生我得到的错误。 File
-> Symbol File Path
中的 "Symbol File Path" 必须有一个条目,如: srv*C:\windbg\websymbols
(当然目录必须存在)。
当您打开故障转储时,它应该有以下输出
(注意这一行:Symbol search path is: srv*C:\windbg\websymbols
):
Microsoft (R) Windows Debugger Version 10.0.14321.1024 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:\Users\XXXXXX\Desktop\AppCrash_XXXXXXXXXXXXX_d4c077fd50acba44bd2aceb966fe5424b98f3e_cab_9eb7d2f5\WERC4D4.tmp.hdmp]
User Mini Dump File: Only registers, stack and portions of memory are available
************* Symbol Path validation summary **************
Response Time (ms) Location
Deferred srv*C:\windbg\websymbols
Symbol search path is: srv*C:\windbg\websymbols
Executable search path is:
Windows 7 Version 7601 (Service Pack 1) MP (4 procs) Free x64
Product: Server, suite: TerminalServer SingleUserTS
Machine Name:
Debug session time: Tue Aug 9 02:05:43.000 2016 (UTC - 4:00)
System Uptime: 79 days 17:08:17.121
Process Uptime: 0 days 0:00:06.000
另一方面,这是我之前的设置,这意味着您忘记设置 "Symbol File Path"(注意行 Symbol search path is: srv*
)
Microsoft (R) Windows Debugger Version 10.0.14321.1024 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:\Users\XXXXXX\Desktop\AppCrash_XXXXXXXXXXXXX_d4c077fd50acba44bd2aceb966fe5424b98f3e_cab_9eb7d2f5\WERC4D4.tmp.hdmp]
User Mini Dump File: Only registers, stack and portions of memory are available
Symbol search path is: srv*
Executable search path is:
Windows 7 Version 7601 (Service Pack 1) MP (4 procs) Free x64
Product: Server, suite: TerminalServer SingleUserTS
Machine Name:
Debug session time: Tue Aug 9 02:05:43.000 2016 (UTC - 4:00)
System Uptime: 79 days 17:08:17.121
Process Uptime: 0 days 0:00:06.000
WER 在我的案例中生成了 2 个文件:triagedump.dmp (2 MiB) 和 memory.hdmp (400 MiB)。
triagedump.dmp 仅包含异常信息,SOS 不适用于它。
memory.hdmp是minidump,SOS加载CLR成功。