如何设置ASAN/UBSAN报告输出

如何设置ASAN/UBSAN报告输出

问题描述:

我想运行我的单元测试套件-fsanitize=address,undefined,并将所有消毒剂错误写入report.txt文件。默认情况下,所有的清理器错误都会写入标准输出,但是该软件也会将信息写入标准输出,因此很难检测到错误。我想:如何设置ASAN/UBSAN报告输出

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

而且我也尝试运行测试之前调用C API:

#include <sanitizer/asan_interface.h> 

__sanitizer_set_report_path("/tmp/asan.log") 

但既不似乎工作,所有的错误只是被写入到标准输出。我使用Debian的测试:

[email protected]:~# gcc --version 
gcc (Debian 6.1.1-11) 6.1.1 20160802 
Copyright (C) 2016 Free Software Foundation, Inc. 

有没有办法,我可以从我的单元测试保存在某个地方的消毒错误任何其他方法?

嗯,我已经成功地使用了log_path多次。如果它不适合你,请向ASan github报告错误(最好使用最少的repro)。