我们的 C# 应用程序在出现未处理的异常时调用 MinidumpWriteDump。
我从用户那里收到了一些故障转储,我似乎无法使用 SOS 打开故障转储并查看导致崩溃的异常。
我们采用的转储类型是MiniDumpWithPrivateReadWriteMemory
我将我的 _NT_SYMBOL_PATH 配置为使用 MS 公共符号服务器,并且在 WinDBG 中调试此故障转储时,它会自动下载所需的 DLL(因为此转储是在具有不同版本 .NET 2 的机器上进行的 - 即结束的那个0.3053)
运行时!线程我得到这个输出:
请求线程存储失败
我浏览了所有可能的站点,这些站点解释了处理不同版本的 CLR 的技术,而不是在转储机器中使用的技术,没有一个对我有用。
我该怎么做才能调试这些崩溃?
我们是否做错了什么(从 .NET 进程中获取错误类型的转储等)
编辑:
这是 ~* 的结果:
0:000> ~* 。0 Id:1338.258 暂停:0 Teb:7ffdf000 未冻结优先级:0 1 Id:1338.2a0 暂停:0 Teb:7ffde000 未冻结优先级:0 2 Id:1338.1fd4 暂停:0 Teb:7ffdd000 未冻结优先级:0 3 Id:1338 暂停。 : 0 Teb: 7ffda000 Unfrozen Priority: 0 4 Id: 1338.1148 Suspend: 0 Teb: 7ffd9000 Unfrozen Priority: 0 5 Id: 1338.b1c Suspend: 0 Teb: 7ffd7000 Unfrozen Priority: 0 6 Id: 1338.f94 Suspend: 0 Teb: 7ffd4000 解冻优先级:0 7 Id:1338.11b4 挂起:0 Teb:7ff4f000 解冻优先级:0 8 Id:1338.1814 挂起:0 Teb:7ff4e000 解冻优先级:0 9 Id:1338.1cc4 挂起:0 Teb:7ffdb1000 解冻优先级: ID:1338.1e48 暂停:0 Teb:7ffd5000 解冻优先级:0 11 Id:1338。
这是 !analyze -v 的结果: