调试只发生在exe但不是来自IDE的异常

时间:2010-07-07 21:00:37

标签: c# winforms debugging

关闭应用程序的主要形式(我在其上调用了很多方法等)如果我从IDE运行我的应用程序并想要关闭它,它没关系,但如果我只是运行exe文件它会抛出例外。

那么您建议我以何种方式进行调试?正如我在IDE中运行它时说的那样,没有错误发生

5 个答案:

答案 0 :(得分:3)

我可以考虑尝试两件事:

  • 从IDE外部运行应用程序,然后附加到该进程。可能是从调试器启动时环境会以某种方式不同
  • 使用adplus(请参阅我之前发布的帖子here以捕获崩溃转储,以便稍后进行分析

答案 1 :(得分:2)

首先找出异常是什么。你能看到异常细节吗?它是否为您提供附加到调试器的选项?你能抓住异常并记录它吗?

答案 2 :(得分:2)

启动程序后附加调试器。这样可以确保调试器不会影响任何副作用,如启动目录,托管进程和JIT优化。

启动您的计划。工具+附加到流程。

答案 3 :(得分:1)

我用C ++编写的a solution - CLI应该很容易移植到C#。

如果它发生在main函数本身中,您是否尝试将所有代码包装在:

try
{
    main();
}
catch( System.Exception^ e)
{
    // do something
}

为C ++道歉 - 我的回答是什么 - 自从我写了任何C#以来已经很长时间了; - )

答案 4 :(得分:1)

您应该能够附加全局异常处理程序:

Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);

然后创建一个处理异常的函数:

private void Application_ThreadException(object sender,System.Thread.ThreadExceptionEventArgs e) {
    // Do whatever here
}