我正在用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