0

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

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

有什么方法可以在没有源代码的情况下调试并找到异常原因?

提前致谢

卡尔提克

4

5 回答 5

1

尝试使用http://www.reflector.net/之类的 .NET 反编译器或来自http://digitalbodyguard.com/的出色 Graywolf获取源代码(Graywolf 受限于非商业用途的许可,因此它可能不会是您的选择)

于 2012-06-22T07:28:44.253 回答
1

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

于 2012-06-22T07:25:44.497 回答
0

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

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

附加 WinDbg 后,以下命令应该会有所帮助:

  • .loadby sos clr加载 CLR 调试扩展
  • !pe转储异常详细信息。
  • ~#s切换到异常线程
  • !clrstack转储线程的堆栈
于 2012-07-23T11:06:32.060 回答
0

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

于 2012-06-22T07:25:37.753 回答
0

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

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

于 2012-06-22T07:32:47.337 回答