小编hus*_*thl的帖子

如何使用gcc v4.8.1的线程消毒器?

gcc v4.8.x添加用于调试程序的选项:

-fsanitize =螺纹

启用ThreadSanitizer,一种快速数据竞争检测器.将检测内存访问指令以检测数据争用错误.有关详细信息,请参阅http://code.google.com/p/data-race-test/wiki/ThreadSanitizer.

我在Fedora 19上的gcc版本:

gcc version 4.8.1 20130603 (Red Hat 4.8.1-1) (GCC)
Run Code Online (Sandbox Code Playgroud)

用以下命令链接我的程序(CMake的输出):

Linking C executable bin/ftu
/usr/bin/cmake -E cmake_link_script CMakeFiles/ftu.dir/link.txt --verbose=1
/usr/bin/cc  -g -g -O0 -Wall -D_REENTRANT  -rdynamic -fsanitize=thread -fPIE -pie    CMakeFiles/ftu.dir/src/main/main.c.o  -o bin/ftu  -L/home/hl/ftu/arm/src/libapp/pc -rdynamic ../libapp/pc/libbase.a ../libapp/pc/libstbl.a ../libapp/pc/libstbl_utest.a ../libapp/pc/libbase_utest.a ../libapp/pc/libmem_utest.a ../libapp/pc/libmemspy_utest.a ../libapp/pc/libos_utest.a ../libapp/pc/libmain_utest.a ../libapp/pc/liblog_utest.a ../libapp/pc/libini_utest.a ../libapp/pc/libdsp_utest.a ../libapp/pc/libmstation_utest.a ../libapp/pc/libflist_utest.a ../libapp/pc/libdc_utest.a ../libapp/pc/libflist.a ../libapp/pc/libdsp.a ../libapp/pc/liblog.a ../libapp/pc/libini.a ../libapp/pc/libmstation.a ../libapp/pc/libdc.a ../libapp/pc/libmemspy.a ../libapp/pc/libmem.a ../libapp/pc/libos.a ../libapp/pc/libbase.a -lrt -lpopt -lpthread -Wl,-rpath,/home/hl/ftu/arm/src/libapp/pc

/usr/bin/ld: cannot find -ltsan

collect2: error: ld returned 1 exit …
Run Code Online (Sandbox Code Playgroud)

c gcc pthreads thread-sanitizer

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×1

gcc ×1

pthreads ×1

thread-sanitizer ×1