如何在OSX上使用clang线程消毒剂?

时间:2013-04-19 03:21:29

标签: macos clang thread-sanitizer

我想在OSX上使用clang的--thread-sanitizer选项:

$ clang++ -fthread-sanitizer -fpic tsan1.cc
Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.3.0
Thread model: posix
[...]
clang -cc1 version 4.2 based upon LLVM 3.2svn default target x86_64-apple-darwin12.3.0
[...]
Undefined symbols for architecture x86_64:
  "___tsan_func_entry", referenced from:
      threadfunc(void*) in tsan1-6f7gbr.o
[...]
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

看起来像是一个链接错误。我应该链接一些额外的库吗?

2 个答案:

答案 0 :(得分:2)

在Darwin for C ++上不支持ThreadSanitizer。这不可能在至少半年内改变。

答案 1 :(得分:0)

已修复。 根据{{​​3}}

  以下操作系统支持

ThreadSanitizer:   ...达尔文arm64,x86_64,...

我也没有任何问题地使用它。