실행 중인 프로그램을 디버깅하는 Linux gdb

1.  디버깅하려는 프로그램의 프로세스 번호를 가져옵니다.

2. gdb를 사용하여 실행 중인 프로그램을 디버깅합니다. 명령은 다음과 같습니다:
gdb attachment 100717

3. 현재 실행 중인 스레드를 보려면 다음 명령을 사용하십시오.

정보 스레드

보시다시피 현재 20개의 스레드가 실행 중 입니다.

4. 각 스레드의 기본 정보를 확인하여 내 읽기 디렉터리가 어느 스레드에서 실행되고 있는지 알 수 있습니다. 명령은 다음과 같습니다.
thread apply all bt

스레드 4 가 내가 디버깅하려는 스레드라는 것을 확실히 알 수 있습니다.

5. 디버깅 스레드에 들어가서 실행 상태를 확인합니다. 명령은 다음과 같습니다:
t 4

 스레드 번호 4 로 전환하는 것입니까 ?

BT

현재 스레드의 스택 상태 확인

msisdn.c:920 에서 스레드가 멈춘 것을 볼 수 있는데 여기 에 while 루프가 있으므로 중단점을 설정하고 프로그램을 다시 실행해 보세요.

  여기서 요점은 프로그램이 계속 실행되도록 하는 명령 c입니다. gdb를 수행한 후 프로그램이 중지되고 다음으로 단일 단계를 사용하여 메모리 변수를 확인할 수 있기 때문입니다.

 

추천

출처blog.csdn.net/m0_72303088/article/details/131128937