Debugging a C# GUI
本文关键字:GUI Debugging | 更新日期: 2023-09-27 18:00:25
概述:我正在调试一个C#GUI,它接收一个XML文件并启动一个新的Process来对XML文件执行统计计算。由于某种原因,进程在执行过程中退出,没有明显的错误。出现一个windows消息框,上面写着"已停止工作,windows正在寻找解决方案"
我尝试过的:
- 我尝试写入日志以跟踪执行应用程序,以便我可以看看它在哪里失败,但过程似乎在中的不同点退出程序
- 我试着使用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 运行应用程序