windows - 在windows上捕获子进程异常

标签 windows debugging exception seh

我正在开发一个多平台 C++ 模糊测试应用程序。该应用程序生成一个子进程并检查它是否意外停止。我已经设法在 Linux 上做到这一点,但是,Windows 异常处理机制让我的事情变得很困难。

我的代码现在执行以下操作: - 调用 CreateProcess 来生成进程。 - WaitForSingleObject 等待它终止。 - 然后调用GetExitCodeProcess并检查退出代码是否对应于异常。

一切都按预期工作,我已经使用空解除引用测试应用程序对其进行了测试,并且我可以优雅地捕获异常。然而,每次我对此进行测试时,都会出现一个 Windows 错误消息框,告诉我发送或不发送错误报告。由于模糊器应该是一个自动测试应用程序,因此我需要以某种方式禁用此通知,这样即使捕获到异常,模糊器也可以继续测试。

我已经尝试安装 SEH 处理程序,但没有成功(显然这些处理程序不是由子进程继承的)。我读过一些有关使用向量异常处理的内容,但假设它是相同的,我相信向量处理程序不是继承的。

有人可以帮我解决这个问题吗?我不知道要搜索什么,我已经用谷歌搜索了很多,但没有找到任何东西。

谢谢!

最佳答案

Debug API是一种选择。 Here是 MSDN 中的起点。

关于windows - 在windows上捕获子进程异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4314519/

相关文章:

c# - VS 2008 中的 "Unable to start debugging"消息

使用 gdb 的 C++ 特定调试技巧

visual-studio - Ax 中的语法错误

java - 异常启动过滤器struts2 :NoSuchMethodError

java - 如何模拟 JestClient、elasticSearch

java - 我应该在哪里放置 close() 方法?

windows - 如何获得在 Windows 上构建 Perl 模块的工具?

angular - IIS7 上的 Angular 7 应用程序中的 500(URL 重写模块错误。)

c# - 在没有事件源注册的情况下写入 Windows 应用程序事件日志

windows - ImageList_Add 在由 pcAnywhere 控制的 PC 上返回 -1