如何让ThreadSanitizer检测到问题后强制崩溃?
让ThreadSanitizer检测到竞态条件时强制崩溃的方法
- 通过设置ThreadSanitizer的环境变量可以实现检测到问题就立即终止程序:
- 临时生效方式:在运行程序前执行
export TSAN_OPTIONS=halt_on_error=1,之后再启动你的程序 - 单次生效方式:直接在运行命令前拼接环境变量,比如
TSAN_OPTIONS=halt_on_error=1 ./your_executable
- 临时生效方式:在运行程序前执行
halt_on_error是TSan的核心控制选项,默认值为0(即检测到问题后继续运行),设为1后,TSan在输出完堆栈跟踪信息后会立即终止程序,不会继续执行后续代码。这个选项不受-O2编译优化等级的影响,完全由运行时环境变量控制。
内容的提问来源于stack exchange,提问作者intrigued_66
相关产品推荐
相关产品推荐

