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