所以前几天我的C#应用程序崩溃了。通常,对于.NET应用程序,如果您有未处理的异常,则会收到带有堆栈跟踪的错误消息。
然而,这一次,我得到了一个不同的对话框,只是告诉我有一个错误,并提供附加调试器,但对话框中没有堆栈跟踪,并且它运行的机器没有安装调试器。< / p>
是什么给出的?为什么我没有看到默认的.NET异常处理程序?
答案 0 :(得分:5)
许多事情都可能导致这种情况发生:
OnPaint
); OutOfMemoryException
,StackOverflowException
,BadImageFormatException
等 - 可能会阻止全局异常处理程序运行; 确实唯一可以确定的方法是确定重现错误的步骤,并使用像WinDbg这样的工具来实际调试崩溃的部分。
答案 1 :(得分:0)
您可能在应用程序直接或间接使用的非托管代码中崩溃。
如果你在非托管代码中访问受保护的内存,那就是它。您不会管理异常并冒泡/传播任何内容。您的流程将以旧式方式崩溃,您将需要老式的工具和技术来查找错误。