我正在用gdb調試我的應用程序。 我用中斷主 因此,它可以打破主調用。 知道如果我使用thread info
它表明線程數爲1GDB在非線程應用程序中顯示1線程
如何線程之前主開始? 我的電話中沒有任何線程調用,所以線程正在創建。我使用這些庫
sqlite的,捲曲,PCRE,C-客戶
更新 我已經寫了一個示例程序來測試,如果所有的程序開始與單個線程
#include<iostream>
int main(int argc,char *argv[]){
std:: cout<<"Will I have any thread";
return 0;
}
但我用gdb調試時
(gdb) break main
Breakpoint 1 at 0x400783: file threadtest.cpp, line 3.
(gdb) run
Starting program: /home/vivek/Desktop/a.out
Breakpoint 1, main (argc=1, argv=0x7fffffffe728) at threadtest.cpp:3
3 std:: cout<<"Will I have any thread";
(gdb) info threads
* 1 process 21608 main (argc=1, argv=0x7fffffffe728) at threadtest.cpp:3
(gdb)
它d沒有顯示相同的信息。它顯示1個進程不是1個線程。
當我用-lpthread編譯它時,它顯示1個線程。
因此,當我們使用lpthread時程序從一個線程開始? 或GDB的行爲如此?
難道是這個線程是你的主線程嗎? – p4553d 2011-02-25 09:59:00