Phi*_*ßen 9 c++ tbb clang race-condition thread-sanitizer
有没有人尝试使用英特尔线程构建模块(TBB)来测试clang的ThreadSanitizer?
到目前为止,我的经验是,即使是相对简单的示例,您也会收到很多警告。不幸的是,其中许多似乎都是误报。
在另一个ThreadSanitizer问题的答案中,建议使用抑制文件。能帮上忙吗?是否有用于TBB或其他任何技术的禁止文件?
(附带说明:使用Helgrind时,它看起来很相似。许多误报。)
当我在中引用抑制文件时,才使它工作TSAN_OPTIONS。至少对我来说,仅在编译期间使用引用-fsanitize-blacklist不能与环境变量一起使用。
无论如何,这是一个可能的抑制文件
# sanitizer-thread-suppressions.txt
race:^tbb*
Run Code Online (Sandbox Code Playgroud)
...就是这样使用它:
TSAN_OPTIONS="suppressions=sanitizer-thread-suppressions.txt" ./my_binary
Run Code Online (Sandbox Code Playgroud)
如果增加详细程度,您应该会看到类似以下的输出:
TSAN_OPTIONS="verbosity=2 suppressions=sanitizer-thread-suppressions.txt" ./my_binary
...
ThreadSanitizer: matched suppression '^tbb*'
Run Code Online (Sandbox Code Playgroud)
请注意,该模式^tbb*很简单,但有潜在危险,因为它可能会在您自己的代码中隐藏警告。更现实的是这样的:
race:^__interceptor_memset*
race:^tbb::interface9::internal::adaptive_mode*
race:^tbb::blocked_range*
race:^tbb::interface9::internal::start_for*
race:^tbb::internal::machine_load_store*
race:^tbb::strict_ppl::internal::micro_queue*
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1417 次 |
| 最近记录: |