5

単体テスト スイートを実行して、-fsanitize=address,undefinedすべてのサニタイザー エラーをreport.txtファイルに書き込みたいと考えています。デフォルトでは、すべてのサニタイザー エラーが stdout に書き込まれますが、ソフトウェアは stdout にも情報を書き込むため、エラーの検出が困難になります。私は試した:

export ASAN_OPTIONS="log_path=asan.log"
./mytests

また、テストを実行する前に C API を呼び出してみました。

#include <sanitizer/asan_interface.h>

__sanitizer_set_report_path("/tmp/asan.log")

ただし、どちらも機能していないようで、すべてのエラーが標準出力に書き込まれます。私は Debian テストを使用しています:

root@94e239ad460a:~# gcc --version
gcc (Debian 6.1.1-11) 6.1.1 20160802
Copyright (C) 2016 Free Software Foundation, Inc.

単体テストのサニタイザー エラーをどこかに保存できる別の方法はありますか?

4

3 に答える 3

2

うーん、私は log_path を何度もうまく使用しました。うまくいかない場合は、ASan github にバグを報告してください (できるだけ最小限の再現で)。

于 2016-10-24T08:33:12.497 に答える