gdb-多线程和共享库

gdb - multiple threads and shared libs

本文关键字:共享 多线程 gdb-      更新时间:2023-10-16

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

让我们已经附加到一个进程。

(gdb) info threads

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

如果你想看到线程启动例程和它们所属的库,你可以使用:

(gdb) thread apply all bt -3

此命令将为每个线程显示3个堆栈帧(从底部开始(。若您使用pthread库,那个么start_thread((之后的函数就是您的启动例程。