在产生的过程中捕获异常

时间:2008-09-24 15:02:49

标签: visual-studio-2008 debugging exception

我正在使用VS2008来调试启动新进程的应用程序。我相信生成的进程在启动过程中遇到(并处理)某种CLR异常,但是在调试中打开CLR异常通知并没有抓住它 - >例外。有关如何查看异常生成位置的任何建议?我通常只会附加到新生成的进程,但由于异常发生在启动时,没有足够的时间来执行它。

5 个答案:

答案 0 :(得分:5)

您可以在流程启动代码中添加对Debugger.Launch()的调用。这将启动附加到进程的调试器(通常允许您选择使用VS2008的运行副本或新副本)。调试服务启动问题也很方便。

答案 1 :(得分:1)

值得考虑的另一个技巧是使用“图像文件执行选项”,请查看blogs.msdn.com上的这篇文章:http://blogs.msdn.com/greggm/archive/2005/02/21/377663.aspx,因为这不需要对孩子进行任何更改可执行文件或父可执行文件。

答案 2 :(得分:0)

如果进程在启动期间失败,则CreateProcess应返回错误代码。检查错误代码。

如果进程在启动后直接失败,则检查进程返回代码及其文档,日志等。

答案 3 :(得分:0)

那么你可以记录错误。但这不允许你看它。为此,您可以考虑在异常处理程序中放置严重的延迟(或infinte循环)。这将为您提供连接到流程并进行调试所需的所有时间。只要确保你在生产中删除它!

答案 4 :(得分:0)

如果您可以控制此流程代码,请使用Debugger.Launch()。

如果没有,请尝试:

从命令行启动此过程并查看输出。如果存在无法处理的异常,则会显示。

如果没有显示任何内容,请使用command line debugger,并使用命令 ca [tch]