我正在开发一个多平台 C++ 模糊测试应用程序。该应用程序生成一个子进程并检查它是否意外停止。我已经设法在 Linux 上做到这一点,但是,Windows 异常处理机制让我的事情变得很困难。
我的代码现在执行以下操作: - 调用 CreateProcess 来生成进程。 - WaitForSingleObject 等待它终止。 - 然后调用GetExitCodeProcess并检查退出代码是否对应于异常。
一切都按预期工作,我已经使用空解除引用测试应用程序对其进行了测试,并且我可以优雅地捕获异常。然而,每次我对此进行测试时,都会出现一个 Windows 错误消息框,告诉我发送或不发送错误报告。由于模糊器应该是一个自动测试应用程序,因此我需要以某种方式禁用此通知,这样即使捕获到异常,模糊器也可以继续测试。
我已经尝试安装 SEH 处理程序,但没有成功(显然这些处理程序不是由子进程继承的)。我读过一些有关使用向量异常处理的内容,但假设它是相同的,我相信向量处理程序不是继承的。
有人可以帮我解决这个问题吗?我不知道要搜索什么,我已经用谷歌搜索了很多,但没有找到任何东西。
谢谢!
最佳答案
关于windows - 在windows上捕获子进程异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4314519/