不顯示線程啟動和退出信息

例子

#include <stdio.h>
#include <pthread.h>

void *thread_func(void *p_arg)
{
       sleep(10);
}

int main(void)
{
        pthread_t t1, t2;

        pthread_create(&t1, NULL, thread_func, "Thread 1");
        pthread_create(&t2, NULL, thread_func, "Thread 2");

        sleep(1000);
        return;
}

技巧

默認情況下,gdb檢測到有線程產生和退出時,會打印提示信息,以上面程序為例:

(gdb) r
Starting program: /data/nan/a
[Thread debugging using libthread_db enabled]
[New Thread 1 (LWP 1)]
[New LWP    2        ]
[New LWP    3        ]
[LWP    2         exited]
[New Thread 2        ]
[LWP    3         exited]
[New Thread 3        ]

如果不想顯示這些信息,可以使用“set print thread-events off”命令,這樣當有線程產生和退出時,就不會打印提示信息:

(gdb) set print thread-events off
(gdb) r
Starting program: /data/nan/a
[Thread debugging using libthread_db enabled]

可以看到不再打印相關信息。

這個命令有些平臺不支持,使用時需注意。參見gdb手冊.

貢獻者

nanxiao