Gcc 当线程消毒剂报告数据竞争时,如何添加断点?
对于地址清理器也有一个类似的问题,但是对于线程清理器,它不起作用,我尝试打开uu清理器u打印u堆栈u跟踪,它也不起作用Gcc 当线程消毒剂报告数据竞争时,如何添加断点?,gcc,gdb,thread-sanitizer,Gcc,Gdb,Thread Sanitizer,对于地址清理器也有一个类似的问题,但是对于线程清理器,它不起作用,我尝试打开uu清理器u打印u堆栈u跟踪,它也不起作用 在GDB下运行程序,在exit和\u exit上设置断点。在Linux上,还要设置catch syscall exit_group 在TSAN\u选项中设置halt\u on\u error=1,要求线程消毒剂: 利润 注意:当遇到断点时,使用GDBwhere命令查看如何报告错误。在堆栈上可能出现的某种\u tsan\u report\u error上设置断点,即使没有设置ha
exit
和\u exit
上设置断点。在Linux上,还要设置catch syscall exit_group
TSAN\u选项中设置halt\u on\u error=1
,要求线程消毒剂:
注意:当遇到断点时,使用GDB
where
命令查看如何报告错误。在堆栈上可能出现的某种\u tsan\u report\u error
上设置断点,即使没有设置halt\u on\u error
,我也必须将abort\u on\u error=1
添加到tsan\u选项中,以使gdb中断而不是退出(请参阅)
(gdb) set env TSAN_OPTIONS=halt_on_error=1
(gdb) run
... error should be reported and one of the breakpoints should fire.