.NET 2.0应用程序崩溃时出现未处理的异常。怎么调试?没有源代码

时间:2012-06-22 07:21:55

标签: .net

我们在某些PC上运行了一个运行(全球化:英语/德语)的.NET 2.0应用程序。

过去几天,应用程序抛出未处理的异常,应用程序崩溃。我没有要调试的源代码。应用程序日志和事件查看器没有用。例外并没有说太多。

有没有源代码调试和查找异常原因的任何方法?

提前致谢

KARTHIK

5 个答案:

答案 0 :(得分:1)

您可以使用http://wiki.sharpdevelop.net/ILSpy.ashx反编译代码并获取代码。但实际上应该在应用程序中进行适当的错误记录。其中详细说明了有效位置的内部异常,这可以让您更好地了解失败的原因。

答案 1 :(得分:1)

尝试使用像http://www.reflector.net/这样的.NET反编译器或http://digitalbodyguard.com/中出色的Graywolf来获取源代码(Graywolf受其非商业用途的许可限制,所以它可能不适合你)

答案 2 :(得分:0)

我会从内存转储开始。 ProcessExplorer可以获取进程的内存转储。

答案 3 :(得分:0)

您可以使用Mdbg或Windbg来调试您的流程。要获取更多信息,您应该使用PDB文件。这就是有用的情况。

您可以在其他答案中找到源代码。请注意,ILSpy和Reflector能够同时进行调试和反编译......

答案 4 :(得分:0)

您可以使用WinDbg处理崩溃转储或在崩溃时附加到进程。托管代码中有足够的类型信息,可以让您有效地进行调试。

  • WinDbg.exe -I会将其注册为系统上的崩溃处理程序。

连接WinDbg后,以下命令应该有所帮助:

  • .loadby sos clr加载CLR调试扩展
  • !pe转储异常详细信息。
  • ~#s切换到具有异常
  • 的线程
  • !clrstack转储线程的堆栈