0

对于地址清理器有一个类似的问题,但对于线程清理器,它不起作用,我试图打破 __sanitizer_print_stack_trace,它也不起作用。

4

1 回答 1

1
  1. 在 GDB 下运行程序,在exit和上设置断点_exit。在 Linux 上,还设置catch syscall exit_group.
  2. 设置要求线程清理程序halt_on_error=1第一个错误时退出TSAN_OPTIONS
(gdb) set env TSAN_OPTIONS=halt_on_error=1
(gdb) run
... error should be reported and one of the breakpoints should fire.
  1. 利润。

PS 遇到断点的时候,用gdbwhere命令看看是怎么报错的。__tsan_report_error即使没有设置,在堆栈上可能会设置断点也可能会起作用halt_on_error

于 2020-09-19T17:44:04.370 回答