.NET 2.0应用程序因未处理的异常而崩溃。如何调试?没有源代码

.NET 2.0应用程序因未处理的异常而崩溃。如何调试?没有源代码,.net,.net,我们有一个.NET2.0应用程序在一些PC上运行(全球化:英语/德语) 过去几天,应用程序抛出未处理的异常,应用程序崩溃。我没有要调试的源代码。应用程序日志和事件查看器都是无用的。例外情况说明不了什么 有没有办法在没有源代码的情况下调试并找到异常的原因 提前谢谢 Karthik我从内存转储开始。可以对进程进行内存转储。您可以使用该命令反编译代码并获取代码。但实际上应用程序中应该有正确的错误日志记录。它在有效位置详细说明了内部异常,这将使您更好地了解失败的原因。尝试使用.NET反编译器或brill

我们有一个.NET2.0应用程序在一些PC上运行(全球化:英语/德语)

过去几天,应用程序抛出未处理的异常,应用程序崩溃。我没有要调试的源代码。应用程序日志和事件查看器都是无用的。例外情况说明不了什么

有没有办法在没有源代码的情况下调试并找到异常的原因

提前谢谢


Karthik

我从内存转储开始。可以对进程进行内存转储。

您可以使用该命令反编译代码并获取代码。但实际上应用程序中应该有正确的错误日志记录。它在有效位置详细说明了内部异常,这将使您更好地了解失败的原因。

尝试使用.NET反编译器或brilliant Graywolf从中获取源代码(Graywolf受其许可证限制,只能用于非商业用途,因此您可能无法选择)

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


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

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

  • WinDbg.exe-I
    将其注册为系统上的崩溃处理程序
连接WinDbg后,以下命令将有所帮助:

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

谢谢。我想我不能使用这些,因为你提到的原因反射镜可以商业化使用:)谢谢。这个间谍看起来很有趣