clang sanitizer 错误回调
clang sanitizer callback on error
是否可以设置某种回调,当 clang 消毒剂发现错误时调用该回调?我需要打印一些有用的信息,例如 - 测试名称。
P.S。测试是 kept/stored 作为 XML 文件,而不是 C++,这就是为什么堆栈跟踪不会告诉我失败的测试名称。
有__sanitizer_set_death_callback
和__asan_set_error_report_callback
(在asan_interface.h中声明)。
也正如 willir 所指出的,运行 和 ASAN_OPTIONS=abort_on_error=1
可能就足够了。这将导致 Asan 在错误时调用 abort
,然后许多单元测试框架可以跳过失败的测试并继续执行。
是否可以设置某种回调,当 clang 消毒剂发现错误时调用该回调?我需要打印一些有用的信息,例如 - 测试名称。
P.S。测试是 kept/stored 作为 XML 文件,而不是 C++,这就是为什么堆栈跟踪不会告诉我失败的测试名称。
有__sanitizer_set_death_callback
和__asan_set_error_report_callback
(在asan_interface.h中声明)。
也正如 willir 所指出的,运行 和 ASAN_OPTIONS=abort_on_error=1
可能就足够了。这将导致 Asan 在错误时调用 abort
,然后许多单元测试框架可以跳过失败的测试并继续执行。