调试从drag-n-drop崩溃的控制台应用程序

时间:2012-07-28 22:07:08

标签: c# visual-studio-2008 console-application

我构建了一个控制台应用程序,允许用户将文件拖放到它上面,然后它就会处理它。但是,它在处理文件时崩溃了,我不知道发生了什么。

我该如何调试?控制台关闭得太快,我无法看到问题所在,当我通过命令行调用它并在那里指定一些args时,我无法重现错误。

程序如下

  • 在Windows资源管理器中,我将输入文件(图像)拖到exe
  • 然后exe会读取图像并用它做一些事情
  • 然后我将图片保存在新文件中

崩溃发生在保存期间,但我对问题的位置并不太感兴趣,但事实上我无法想出实际调试方法。

3 个答案:

答案 0 :(得分:3)

如果您的应用由其他某个程序(如资源管理器)自动启动,请配置Launch debugger on process start

另一种简单的方法(当调整注册表不是一个选项时)是在代码中添加Debugger.Break以便有机会附加调试器。甚至Thread.Sleep(10000)给你机会抓住它。

没有什么非常具体的拖放功能(与通常需要远程调试的焦点问题不同)。

使用正确的参数启动应用程序表单VS或附加到正在运行的应用程序。你可能想要打开" Debug-> Exception->抛出时中断"对于CLR例外(可能需要禁用"工具 - >选项 - >调试 - >仅我的代码")。

在附加到流程时观察输出窗口是否有任何可疑痕迹。

如果VS正在以某种方式进入,你可以用同样的方式使用WinDbg ......但是先尝试VS路线。

答案 1 :(得分:0)

您可以在项目属性中指定调试命令行,就像

一样

Visual Studio 2012 with the debug time event args

然后您可以像平常一样放置断点并调试应用程序。

答案 2 :(得分:0)

首先确保你尝试过Alexei Levenkov提到的所有内容,如果这对你不起作用(这可能只会在你做错事情的情况下发生)你还可以使用简单的日志文件来跟踪错误,但我总是与VS调试器一起使用,因为这样可以更加舒适。