如何在GDB中列出线程及其相应的功能。

时间:2014-08-06 13:11:49

标签: linux multithreading gdb

在“info thread”命令的帮助下,我能够知道线程id和当前正在执行的线程。当我有一个或两个线程能够提醒每个线程的功能。基于此我能够执行我想要的线程。但是当我使用多个线程并且我想执行一个特定的函数时,我需要记住所有的函数,以便我可以给出相应的线程id来执行。它是不可能提醒所有线程及其函数名称。那么,有没有办法在GDB中列出线程及其函数名。?。

谢谢.. !!。

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您可以使用thread apply all bt命令。它将打印所有线程的回溯。您将在结束前和clone系统调用之前的每个回溯中找到线程函数名称。

答案 2 :(得分:0)

我按Ctrl + L清除屏幕缓冲区

set height 0
thread apply all bt

如果列表很长,这将为所有线程转储回溯,但不会暂停(因为我们将窗口高度设置为0)。然后我将输出复制/粘贴到文本编辑器中进行检查。