명령어 | 정의 |
---|---|
-g | 실행 파일에 디버깅 정보 삽입 |
gcc -g -o 실행파일 실행파일.c
gdb 실행파일
=> gdb 실행 결과
(gdb) l => main 함수를 기점으로 소스 출력
(gdb) l 10 => 10행을 기준으로 소스 출력
(gdb) l func => func 함수의 소스 출력
(gdb) q => 종료
(gdb) b main => main 함수의 시작 부분에 브레이크 포인트
(gdb) b func => func 함수의 시작 부분에 브레이크 포인트
(gdb) b 10 if var == 0 => 10행에 브레이크 포인트를 설정하는데, var 변수 값이 0일 때 작동
(gdb) info breakpoints => 브레이크 포인트 설정 상태
(gdb) cl func => func 함수 시작 부분에 브레이크 포인트 지움
(gdb) d => 모든 브레이크 포인트 지움
(gdb) r => 프로그램 수행
(gdb) r arg1 arg2 => arg1과 arg2 인자로 프로그램 수행
(gdb) k => 프로그램 수행 종료
(gdb) s => 현재 행 수행 후 정지, 함수 호출 시 함수 내부로 들어감
(gdb) n => 현재 행 수행 후 정지, 함수 호출 시 함수 수행 후 다음 행으로 감
(gdb) c => 브레이크 포인트를 만날 때까지 멈추지 않고 계속 수행
(gdb) u => 현재 루프를 빠져나감
(gdb) finish => 현재 함수를 수행하고 빠져나감
(gdb) return => 현재 함수를 수행하지 않고 빠져 나감
(gdb) si => 현재의 인스트럭션을 수행, 함수 호출 시 함수 내부로 들어감
(gdb) ni => 현재의 인스트럭션을 수행, 함수 호출 시 함수 내부로 들어가지 않음
(gdb) bt => 스택을 백트레이스 해 어떤 함수를 호출하다가 문제가 발생했는지 알 수 있음와치 포인트
(gdb) watch [변수명]
(gdb) info locals => 현재 상태에서의 지역변수 확인
(gdb) info variables => 현재 상태에서의 전역변수 확인
(gdb) p [변수명]