首次运行时 sos.threads 中的 windbg 异常

标签 windbg

当我在 Windbg (x64) 版本 6.3.9600.16384 中加载故障转储并加载 .net 的 sos 扩展时,我第一次运行 !threads命令我收到此错误:

c0000005 Exception in C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos.threads debugger extension.
      PC: 00007ffa`8fe6c7e3  VA: 00000000`00000000  R/W: 0  Parameter: 00000000`00000000

随后命令运行良好。全文抄录:
Loading Dump File [C:\Users\celdredge\AppData\Local\Temp\w3wp (2).DMP]
User Mini Dump File with Full Memory: Only application data is available


************* Symbol Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       srv*

************* Symbol Path validation summary **************
Response                         Time (ms)     Location
Deferred                                       srv*
OK                                             c:\projects\dumps\symbols
Symbol search path is: srv*;c:\projects\dumps\symbols
Executable search path is: srv*
Windows 8 Version 9600 MP (4 procs) Free x64
Product: WinNt, suite: SingleUserTS
Built by: 6.3.9600.16384 (winblue_rtm.130821-1623)
Machine Name:
Debug session time: Tue Dec 17 23:03:00.000 2013 (UTC - 5:00)
System Uptime: 0 days 9:56:04.777
Process Uptime: 0 days 0:01:41.000
................................................................
................................................................
......................................................
ntdll!NtWaitForSingleObject+0xa:
00007ffa`a1d265ba c3              ret
0:000> .loadby sos clr
0:000> !threads
c0000005 Exception in C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos.threads debugger extension.
      PC: 00007ffa`8fe6c7e3  VA: 00000000`00000000  R/W: 0  Parameter: 00000000`00000000

CLR 版本:
0:000> lm v mclr
start             end                 module name
00007ffa`84450000 00007ffa`84de8000   clr        (pdb symbols)              C:\ProgramData\dbg\sym\clr.pdb\252574218A084BE3AFEFF8921ADADB6F2\clr.pdb
    Loaded symbol image file: 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:        Tue Sep 10 02:54:48 2013 (522EC238)
    CheckSum:         00994334
    ImageSize:        00998000
    File version:     4.0.30319.34003
    Product version:  4.0.30319.34003

求救版本:
0:000> .chain
Extension DLL search Path:
    <snip/>
Extension DLL chain:
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll: image 4.0.30319.34003, API 1.0.0, built Tue Sep 10 02:44:16 2013
        [path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos.dll]
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos: image 4.0.30319.34003, API 1.0.0, built Tue Sep 10 02:44:16 2013
        [path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos.dll]

最佳答案

这似乎是一个奇怪的问题,因为保存了一个明确的工作区,该工作区记住加载了哪些扩展。如果我 .loadby sos clr并保存工作区,下次我打开工作区时,它会加载两次 sos。但是,如果我这样做 .load c:\path\to\sos.dll并保存工作区,当我重新打开它时它只会加载一次。

总之,windbg 中的工作区令人困惑。

关于首次运行时 sos.threads 中的 windbg 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20666394/

相关文章:

.Net 应用程序死锁和 GC

debugging - 是否有在 Windows 7 x64 上启用本地内核调试的黑客/技巧

windbg - 使用 WinDbg 转储 STL 字符串

windbg - _NT_SYMBOL_PATH格式

c# - 调用 C++/CLI 包装器时出现外部异常 E0434352

windbg - 加载 .NET 2 或 .NET 4 时如何设置断点?

windows - 使用用户模式转储确定 WinDbg 中的线程等待时间

c - 有没有办法使用 Eclipse/WinDbg 调试 VC++ 编译的应用程序?

c# - 带有 SOS 的 Windbg,如何转储 c# 结构

asp.net - 如何调试尖峰 ASP.NET 进程的内存转储?