intrigued_66 Asked: 2024-06-11 05:08:25 +0800 CST2024-06-11 05:08:25 +0800 CST 2024-06-11 05:08:25 +0800 CST 发现问题后强制 ThreadSanitizer 崩溃 772 我正在运行带有 -02 和 g 编译器标志且不使用 gdb 的 ThreadSanitizer。它检测到竞争条件并打印堆栈跟踪,但它继续运行。我很幸运能够进行监控。 有没有办法在检测到问题时强制 ThreadSanitizer 崩溃? c++ 1 个回答 Voted Best Answer Ted Lyngmo 2024-06-11T05:12:47+08:002024-06-11T05:12:47+08:00 您可以使用以下halt_on_error选项: $ g++ -o foo foo.cpp -fsanitize=thread $ TSAN_OPTIONS=halt_on_error=1 ./foo 旗帜名称 默认值 描述 halt_on_error 0 第一次报告错误后退出 如果您希望默认启用此功能。__tsan_default_options向程序添加一个函数: #ifdef __SANITIZE_THREAD__ extern "C" const char* __tsan_default_options() { return "halt_on_error=1"; } #endif
您可以使用以下
halt_on_error
选项:halt_on_error
如果您希望默认启用此功能。
__tsan_default_options
向程序添加一个函数: