gdb - 多个线程和共享库

时间:2015-05-26 13:00:43

标签: c++ linux multithreading gdb shared-libraries

我有一个创建许多线程的程序。我可以使用以下命令检查它:ps -L pid。我也知道一个进程加载了一些共享库。我想知道是否可以检查哪些线程属于选定的共享库。 该过程包含调试符号,我可以使用以下命令附加到它们:sudo gdb -p pid接下来是什么?

1 个答案:

答案 0 :(得分:2)

让我们已经加入了一个过程。

(gdb) info threads

将显示当前已知的线程。输出中的最后一列显示了每个线程的最后一个堆栈帧的函数和库。

如果您想查看线程启动例程及其所属的库,您可以使用:

(gdb) thread apply all bt -3

此命令将显示每个线程的3个堆栈帧(从底部开始)。如果您正在使用pthread库,则start_thread()之后的函数就是您的启动例程。