代码之家  ›  专栏  ›  技术社区  ›  brovar

调试编译的.NET 2.0应用程序

  •  1
  • brovar  · 技术社区  · 16 年前

    我不知道我是否会在这里传递所有必要的信息,但我只是被要求在这里张贴这个问题,我不完全对这件事。

    有一个.NET Framework 2.0应用程序是在调试模式下编译的,其参数jitDebugging在app.config中设置为true

    <system.windows.forms jitDebugging="true" />
    

    在任何崩溃之后,我们都会得到一个对话框,允许我们发送报告或调试程序。当我们选择调试并选择正确的VS时,IDE会启动,但会宣布:

    在运行模式下无法显示反汇编。

    有没有可能看到代码或车祸发生的地点?

    //编辑:

    塔舍尔的建议很好,但最终的解决办法是。。。添加一个带有Main()方法的模块,并强制项目使用它——这要感谢VS能够显示代码并定位异常的源代码。

    3 回复  |  直到 16 年前
        1
  •  1
  •   Paolo    16 年前

    您的.net应用程序将在崩溃后创建一个转储文件。您需要将此转储文件与应用程序pdb文件一起加载才能查看源代码。此pdb文件是在编译和存储有关程序的调试信息时创建的。

    在您的情况下,VisualStudio可能无法定位并加载pdb文件。

        2
  •  2
  •   derek    16 年前

    确保应用程序中有.pdb文件和.dll文件。

        3
  •  1
  •   Hans Passant    16 年前

    不确定您的部署场景是什么样子的,但是在客户或生产机器上运行调试器通常不是很实用。为AppDomain.UnhandledException事件编写事件处理程序,并显示e.ExceptionObject.ToString()的值。至少,您的客户可以向您发送屏幕截图。您将得到异常消息和一个很好的堆栈跟踪,显示您的程序是如何陷入麻烦的。通常95%的人都能看出哪里出了问题。

    推荐文章