【发布时间】:2017-02-02 18:33:26
【问题描述】:
我正在调试一些 C++ 代码。当我在断点处暂停时,如果我执行info thread,gdb 会显示我进程中所有线程的列表,并在断点处正在执行的线程旁边放置一个星号。是否有一个 gdb 命令可以让 gdb 在断点时告诉你线程 id?
我正在做catch throw 和catch catch,在线程 1 上抛出异常时进行调试。但是,线程 2 同时也抛出和捕获异常。因为,我只对 thread1 上的throw 和 catch 感兴趣,所以我打算向 gdb 询问 threadid,如果 threadid 为 2,则编写断点以继续。
(gdb) catch throw
Catchpoint 7 (throw)
(gdb) catch catch
Catchpoint 8 (catch)
(gdb) command 8
> if threadid == 2
> c
> end
你能告诉我如何写这行if threadid == 2吗?
【问题讨论】:
标签: c++ multithreading debugging gdb