VS2005 C# 编译器在我们团队的夜间构建过程中崩溃。 我用 WinDBG 附加到它,加载 SOS 扩展,打印调用堆栈,但看不到异常信息。
我尝试了!PrintException,如下:
0:000> !PrintException 该线程当前没有托管异常
这是调用堆栈的顶部:
0:000> !CLRStack 操作系统线程 ID:0x9fc (0) ESP电子IP 0012ee08 77e4bef7 [ComPlusMethodFrameGeneric: 0012ee08] Microsoft.Build.Tasks.Hosting.ICscHostObject.Compile() 0012ee18 6be671ab Microsoft.Build.Tasks.Csc.CallHostObjectToExecute() 0012ee48 6c0aed17 Microsoft.Build.Utilities.ToolTask.Execute()
您没有看到异常的原因是 C# 编译器不是用托管代码编写的。 它是一个 C++ 项目,因此不会抛出 CLR 异常。 您需要寻找本机错误。
我明白了! 所需要做的就是从 WinDBG 保存转储 (*.dmp) 文件并在 Visual Studio 中重新打开它。
欲了解完整的解决方案,请查看 我之前的问题