gdb로 내 응용 프로그램을 디버깅하고있었습니다. break main을 사용했습니다. main이 호출되면 중단 될 수 있습니다. thread info
을 사용하면 스레드 수가 1임을 알 수 있습니다.GDB가 비 스레드 응용 프로그램에서 1 스레드를 표시합니다.
주 전에 스레드가 시작되는 방법은 무엇입니까? 내 전화에서 스레드가 생성되는 곳에서 스레드 호출이 없습니다. 나는 모든 프로그램이 단일 스레드로 시작하는 경우하는지 테스트하는 샘플 프로그램을 작성했습니다 이러한 libs와
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)
같은 정보를 보여주지는 마라. 1 개의 프로세스가 아니라 1 개의 프로세스를 보여줍니다.
-lpthread를 사용하여 컴파일하면 스레드가 1 개 표시됩니다.
그래서 우리는 lpthread를 사용할 때 한 스레드로 시작합니까? 또는 GDB는 이와 같이 동작합니까?
이 스레드가 기본 스레드입니까? – p4553d