マルチプラットフォームの C++ ファジング アプリケーションを開発しています。アプリは子プロセスを生成し、予期せず停止したかどうかを確認します。私はすでにLinuxでこれを行うことができましたが、Windowsの例外処理メカニズムが私にとって困難です。
私のコードは現在、次のことを行っています。 - CreateProcess を呼び出して、プロセスを生成します。- 終了するまで待機する WaitForSingleObject。- 次に、GetExitCodeProcess を呼び出して、終了コードが例外に対応するかどうかを確認します。
すべてが正常に機能し、null デリファレンス テスト アプリケーションでテストしたところ、例外を適切にキャッチできました。ただし、これをテストするたびに、エラー レポートを送信するか送信しないかを示す Windows エラー メッセージ ボックスが表示されます。ファザーは自動テスト アプリケーションであると想定されているため、何らかの方法でこの通知を無効にして、例外がキャッチされた場合でもファザーがテストを続行できるようにする必要があります。
すでに SEH ハンドラーをインストールしようとしましたが、運がありませんでした (明らかに、これらのハンドラーは子プロセスに継承されません)。ベクトル化された例外処理の使用について何か読んだことがありますが、同じであると仮定すると、ベクトルハンドラーは継承されないと思います。
誰でもこの問題を解決できますか? 何を検索すればよいかわかりません。すでにたくさんグーグル検索しましたが、何も見つかりませんでした。
ありがとう!