我们在某些PC上运行了一个运行(全球化:英语/德语)的.NET 2.0应用程序。
过去几天,应用程序抛出未处理的异常,应用程序崩溃。我没有要调试的源代码。应用程序日志和事件查看器没有用。例外并没有说太多。
有没有源代码调试和查找异常原因的任何方法?
提前致谢
KARTHIK
答案 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
转储线程的堆栈