2016-09-25 4 views
1

Я хотел бы запустить мой блок тестирования с -fsanitize=address,undefined и записать все ошибки sanitizer в файл report.txt. По умолчанию все ошибки sanitizer записываются в stdout, однако программное обеспечение также записывает информацию в stdout, поэтому это затрудняет обнаружение ошибок. Я пробовал:Как настроить вывод отчетов ASAN/UBSAN

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

И я также попытался вызова API C перед запуском тестов:

#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. 

Есть ли альтернативный метод, который я могу сохранить ошибка дезинфицирующего из моих модульных тестов где-нибудь?

ответ

0

Хм, я успешно использовал log_path много раз. Если это не сработает для вас, сообщите об ошибке для ASAN github (желательно с минимальным воспроизведением).