Debugging a C# GUI

本文关键字:GUI Debugging | 更新日期: 2023-09-27 18:00:25

概述:我正在调试一个C#GUI,它接收一个XML文件并启动一个新的Process来对XML文件执行统计计算。由于某种原因,进程在执行过程中退出,没有明显的错误。出现一个windows消息框,上面写着"已停止工作,windows正在寻找解决方案"

我尝试过的:

  • 我尝试写入日志以跟踪执行应用程序,以便我可以看看它在哪里失败,但过程似乎在中的不同点退出程序
  • 我试着使用Visual Studio调试器跟踪程序执行,但类似于
    进程在不同的时间退出

我想知道的:

  • 还有其他免费的调试器吗可以试试吗
  • 我能打电话看看吗进程的当前状态当它运行时
  • 有人能想出别的办法试试吗

任何帮助都会很棒。谢谢

Debugging a C# GUI

Visual Studio的调试器是有史以来最好的调试工具,您应该更多地关注学习使用它,而不是寻找其他工具。

要回答您的问题,请转到Debug>Exceptions(CTRL+D CTRL+E)并勾选Common Language Runtime Exceptions旁边的Thrown框。这将导致调试器在抛出异常时中断,无论您是悄悄地接受它还是完全忽略它。这将有助于查明您的问题。

添加一些

Debugger.Break();

在代码的战略点上的语句可以强制您进入调试器,这是解决此类问题的一种有用方法。。。

只是别忘了把它们拿出来!

您可以注册AppDomain.CurrentDomain UnhandledException事件,看看是否发现问题。

在显示主窗体之前,在Program.cs文件中添加类似的内容:

AppDomain.CurrentDomain.UnhandledException += 
    new UnhandledExceptionEventHandler(UnhandledExceptionEventOccured);
private static void UnhandledExceptionEventOccured(
    object sender, UnhandledExceptionEventArgs e)
{
    Exception ex = e.ExceptionObject as Exception;
    if(ex != null)
    {
        MessageBox.Show(ex.StackTrace, ex.Message);
    }
}

另一种选择是通过WinDbg 运行应用程序