【发布时间】:2016-09-25 12:08:54
【问题描述】:
我想使用-fsanitize=address,undefined 运行我的单元测试套件,并将所有消毒错误写入report.txt 文件。默认情况下,所有 sanitizer 错误都会写入标准输出,但软件也会将信息写入标准输出,因此很难检测到错误。我试过了:
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.
是否有任何替代方法可以将我的单元测试中的 sanitizer 错误保存在某个地方?
【问题讨论】:
标签: gcc clang sanitizer ubsan address-sanitizer