2017-12-26 10 views
2

コールバックを設定することは可能ですか?clangサニタイザーがエラーを検出したときに呼び出されますか?私は、テスト名のような有用な情報を表示する必要があります。clang sanitizerコールバックエラーon

P.S.テストはC++ではなくXMLファイルとして保存/保存されます。そのため、スタックトレースは失敗したテスト名を教えてくれません。

答えて

2

__sanitizer_set_death_callback__asan_set_error_report_callbackasan_interface.hで宣言されています)があります。

willirが指すように、ASAN_OPTIONS=abort_on_error=1で実行するだけでも十分です。これにより、Asanはエラー時にabortを呼び出し、多くの単体テストフレームワークは失敗したテストをスキップして実行を続行できます。

+1

ご回答ありがとうございます。多くの場合、 'ASAN_OPTIONS = abort_on_error'環境変数で十分であると付け加えたいと思います。これは、サニタイザーが '_exit'ではなく' abort'を呼び出すようにします。ほとんどのテストフレームワークはすでに '中止'を処理しています。 – willir

+0

@willir同意、良い点。 – yugr

関連する問題