2
コールバックを設定することは可能ですか?clangサニタイザーがエラーを検出したときに呼び出されますか?私は、テスト名のような有用な情報を表示する必要があります。clang sanitizerコールバックエラーon
P.S.テストはC++ではなくXMLファイルとして保存/保存されます。そのため、スタックトレースは失敗したテスト名を教えてくれません。
コールバックを設定することは可能ですか?clangサニタイザーがエラーを検出したときに呼び出されますか?私は、テスト名のような有用な情報を表示する必要があります。clang sanitizerコールバックエラーon
P.S.テストはC++ではなくXMLファイルとして保存/保存されます。そのため、スタックトレースは失敗したテスト名を教えてくれません。
__sanitizer_set_death_callback
と__asan_set_error_report_callback
(asan_interface.hで宣言されています)があります。
willirが指すように、ASAN_OPTIONS=abort_on_error=1
で実行するだけでも十分です。これにより、Asanはエラー時にabort
を呼び出し、多くの単体テストフレームワークは失敗したテストをスキップして実行を続行できます。
ご回答ありがとうございます。多くの場合、 'ASAN_OPTIONS = abort_on_error'環境変数で十分であると付け加えたいと思います。これは、サニタイザーが '_exit'ではなく' abort'を呼び出すようにします。ほとんどのテストフレームワークはすでに '中止'を処理しています。 – willir
@willir同意、良い点。 – yugr