带有GCC 4.9.0的螺纹消毒剂-忽略TSAN_选项

带有GCC 4.9.0的螺纹消毒剂-忽略TSAN_选项,gcc,Gcc,我使用的是运行在Ubuntu 2.04下的GCC4.9.0线程消毒剂 TSAN编译开关是 -fsanize=线程-fno省略帧指针-fPIE TSAN链路交换机 -fsanize=线程-fno省略帧指针-pie 我在GDB7.4中运行这个程序 ThreadSanitarizer本身工作正常,但它忽略了TSAN_OPTIONS环境变量 在运行GDB之前,我从命令行设置环境变量,如下所示: 导出TSAN\U选项=报告\U错误=0 我已经确认TSAN_选项已按预期设置,无论是从命令行上的“printe

我使用的是运行在Ubuntu 2.04下的GCC4.9.0线程消毒剂

TSAN编译开关是 -fsanize=线程-fno省略帧指针-fPIE

TSAN链路交换机 -fsanize=线程-fno省略帧指针-pie

我在GDB7.4中运行这个程序

ThreadSanitarizer本身工作正常,但它忽略了TSAN_OPTIONS环境变量

在运行GDB之前,我从命令行设置环境变量,如下所示:

导出TSAN\U选项=报告\U错误=0

我已经确认TSAN_选项已按预期设置,无论是从命令行上的“printenv”还是从测试中的“C”程序中,都使用getenv()

例如,上面的设置应该阻止ThreadSanitizer报告bug,但无法阻止ThreadSanitizer报告bug

我测试过的其他一些开关是抑制和日志路径


非常感谢您的帮助或想法。

我注意到TSAN_OPTIONS写为TSAN_OPTIONS=report\u bugs=0./a.out,最后加上“/a.out”。请对此作出解释。真的没有地方可以充分解释TSAN_选项语法。另外,作为一个额外的线索,我看到了与ASAN_选项相同的选项被忽略的问题。额外的参数可能是将应用选项的过程的名称。我尝试添加此选项,但结果是相同的:ThreadSanitarizer会忽略TSAN_选项指定的选项。