我正在尝试使用一个等待用户输入的线程来调试多线程程序。当我在其他线程的某个函数处设置断点并运行应用程序时,它会切换到相同的断点,然后立即在输入线程处,因此应用程序等待用户的输入,而我无法在 gdb 中执行任何命令。我只需要在调用相同的函数之前查看所有堆栈。我无法输入 bt 命令
问问题
1328 次
2 回答
1
thread apply all bt
回答你的问题吗?
于 2012-11-05T16:13:56.277 回答
1
您可以将命令添加到断点,请参阅手册。像这样的东西:
(gdb) break some_func
Breakpoint 2 at ...
(gdb) commands 2
Type commands for breakpoint(s) 2, one per line.
End with a line saying just "end".
>thread apply all bt full
>end
(gdb) cont
Continuing.
Breakpoint 2, ...
Thread 1 (Thread 0x....
...
编辑0:
哦,我猜你会gdb
在你身上打印这个:
---Type <return> to continue, or q <return> to quit---
在你做之前做以下事情run
(你也可以把它放到.gdbinit
文件中):
(gdb) set pagination off
于 2012-11-05T16:26:50.290 回答