我们的C#应用程序在未处理的异常时调用MinidumpWriteDump。
我收到了一些来自用户的故障转储,我似乎无法使用SOS打开故障转储并查看导致崩溃的异常。
我们正在采取的转储类型是 MiniDumpWithPrivateReadWriteMemory
我将_NT_SYMBOL_PATH配置为使用MS公共符号服务器,并且在WinDBG中调试此故障转储时,它会自动下载所需的DLL(因为此转储是在具有不同版本的.NET 2的计算机上进行的 - 即以.3053结尾的那个
运行时!线程我得到这个输出:
无法请求ThreadStore
我已经浏览了所有可能的站点,这些站点解释了处理不同版本CLR的技术,而不是转储机中采用的技术,没有一个能为我工作。
我可以做些什么来调试这些崩溃?
我们做错了什么(从.NET进程中采取错误的转储等)
编辑:
这是〜*:
的结果0:000> 〜*。 0 Id:1338.258暂停:0 Teb:7ffdf000 Unfrozen 优先级:0 1 Id:1338.2a0暂停:0 Teb:7ffde000 Unfrozen 优先级:0 2 Id:1338.1fd4暂停:0 Teb:7ffdd000 解冻 优先级:0 3 Id:1338.17e8暂停:0 Teb:7ffda000 解冻 优先级:0 4 Id:1338.1148暂停:0 Teb:7ffd9000 解冻 优先级:0 5 Id:1338.b1c暂停:0 Teb:7ffd7000 Unfrozen 优先级:0 6 Id:1338.f94暂停:0 Teb:7ffd4000 Unfrozen 优先级:0 7 Id:1338.11b4暂停:0 Teb:7ff4f000 解冻 优先级:0 8 Id:1338.1814暂停:0 Teb:7ff4e000 解冻 优先级:0 9 Id:1338.1cc4暂停:0 Teb:7ffdb000 解冻 优先级:0 10 Id:1338.1e48暂停:0 Teb:7ffd5000 解冻 优先级:0 11 Id:1338.1a5c暂停:0 Teb:7ff4c000 解冻 优先级:0 12 Id:1338.1874暂停:0 Teb:7ff4b000 解冻 优先级:0 13 Id:1338.1498暂停:0 Teb:7ff4a000 解冻 优先级:0
这是!analyze -v:
的结果答案 0 :(得分:2)
WinDbg可能正在加载错误版本的mscorwks DLL。尝试使用.cordll -lp明确告诉WinDbg它应该加载哪些CLR调试模块,另请参阅此博客文章:Issues Debugging Managed Code in WinDbg with SOS and PSSCOR2 (e.g. "Failed to request ThreadStore")
答案 1 :(得分:1)
您需要更改传递给'MiniDumpWriteDump'的选项,确保它们包含此处提到的选项:What is minimum MINIDUMP_TYPE set to dump native C++ process that hosts .net component to be able to use !clrstack in windbg