20.2.3. GDB를 사용하여 프로그램 코드를 단계별로 실행
GDB 디버거가 프로그램에 연결되면 여러 명령을 사용하여 프로그램의 실행을 제어할 수 있습니다.
사전 요구 사항
- GDB는 시스템에 설치해야 합니다
필요한 디버깅 정보를 사용할 수 있어야 합니다.
- 프로그램은 디버깅 정보로 컴파일 및 구축되거나
- 관련 debuginfo 패키지가 설치됨
- GDB는 디버그할 프로그램에 연결되어 있습니다.
GDB 명령어를 사용하여 코드 전달
R
(run)-
프로그램 실행을 시작합니다.
실행이
인수와 함께 실행되면 해당 인수는 프로그램이 정상적으로 시작된 것처럼 실행 파일에 전달됩니다. 일반적으로 사용자는 중단점을 설정한 후 이 명령을 실행합니다. start
-
프로그램의 실행을 시작하고 기본 함수의 시작 부분에서 중지합니다.
start
를 인수로 실행하면 프로그램이 정상적으로 시작된 것처럼 해당 인수가 실행 파일에 전달됩니다.
c
(계속)현재 상태에서 프로그램을 계속 실행합니다. 프로그램 실행이 다음 중 하나가 true가 될 때까지 계속됩니다.
- Breakpoint에 도달합니다.
- 지정된 조건이 충족됨
- 프로그램에 의해 수신된 신호
- 오류가 발생했습니다.
- 프로그램이 종료
N
(next)이 명령의 일반적으로 알려진 또 다른 이름은
step
입니다. 현재 소스 파일의 다음 코드 줄에 도달할 때까지 현재 상태에서 프로그램을 계속 실행합니다. 프로그램 실행이 다음 중 하나가 true가 될 때까지 계속됩니다.- Breakpoint에 도달합니다.
- 지정된 조건이 충족됨
- 프로그램에 의해 수신된 신호
- 오류가 발생했습니다.
- 프로그램이 종료
s
(단계)-
이 명령의 다른 일반적으로 알려진 이름은
다음과
같습니다.step
명령은 현재 소스 파일에서 코드의 각 순차적 줄에서 실행을 중지합니다. 그러나 현재 함수 호출이 포함된 소스 라인에서 실행이 중지된 경우 GDB는 함수 호출 을 입력한 후(실행하지 않고) 실행을 중지합니다. - 위치
까지
- 위치 옵션으로 지정한 코드 위치에 도달할 때까지 실행을 계속합니다.
Fini
(마지막)프로그램 실행을 다시 시작하고 실행이 함수에서 반환될 때 중지됩니다. 프로그램 실행이 다음 중 하나가 true가 될 때까지 계속됩니다.
- Breakpoint에 도달합니다.
- 지정된 조건이 충족됨
- 프로그램에 의해 수신된 신호
- 오류가 발생했습니다.
- 프로그램이 종료
Q
(quit)- 실행을 종료하고 GDB를 종료합니다.
추가 리소스
- 20.2.5절. “GDB 차단기를 사용하여 정의된 코드 위치 실행 중지”
- GDB로 디버깅 - 4.2 프로그램 시작
- GDB를 사용한 디버깅 - 5.2 연속 및 단계