c++ - clang sanitizer 错误回调

标签 c++ sanitizer

是否可以设置某种回调,当 clang sanitizer 发现错误时将调用该回调?我需要打印一些有用的信息,例如 - 测试名称。

附言测试保存/存储为 XML 文件,而不是 C++,这就是堆栈跟踪不会告诉我失败的测试名称的原因。

最佳答案

__sanitizer_set_death_callback__asan_set_error_report_callback(在 asan_interface.h 中声明)。

另外,正如 willir 所指出的,使用 ASAN_OPTIONS=abort_on_error=1 运行可能就足够了。这将导致 Asan 在出错时调用 abort,然后许多单元测试框架可以跳过失败的测试并继续执行。

关于c++ - clang sanitizer 错误回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47983039/

相关文章:

c++ - 检测未定义行为的 C++ 实现?

gcc - Address Sanitizer 可以在检测到错误后立即中止吗?

c++ - 为什么 std::unique_ptr 有一个 "get()"成员函数?

c++ - 如何在 Media Foundation 中支持多 GPU 系统?

c++ - 动态地形 block 生成

c++ - Visual C++ _snprintf 将 errno 设置为 ERANGE

debugging - 找不到 -lasan 和 libasan_preinit.o

c++ - 使用 Memory Sanitizer 检测 libc++

c++ - 未定义的行为或误报

c++ - 限制为子矩形的qt拖放