반응형
SMALL
1. 시작과 종료
- 시작 : gdb [프로그램명] / gdb [ 프로그램명] [core파일명] / gdb [프로그램명] [실행중인 프로세스 pid]
- 종료 : Ctrl+D , q
2. 소스 보기 (list/l)
- list : main 함수 기점으로 소스 출력
- list 5 : 5행을 기준으로 출력
- list func : func 함수의 소스 출력
- list - : 이전 행의 소스 출력
3. 브레이크 포인트 (break/b) - 중단점 설정 / 확인 / 해제
- break <함수이름> : 함수의 시작 부분에 브레이크 포인트 설정
- break <라인번호> : 라인번호에 브레이크 포인트 설정
- break <파일이름:라인번호> : 파일의 라인번호에 브레이크 포인트 설정
- break <파일이름: 함수이름> : 해당 파일의 함수에 브레이크 포인트 설정
- break +<offset> : 현재 위치에서 오프렛 라인 뒤에 설정
- break -<offset> : 현재 위치에서 오프셋 라인 뒤에 설정
- break *address : 이미지의 주소 영역을 breakpoint로 설정
- break <... > if <condition> : condition이 만족할때만 중단.
- info break (ib) : 중단점 확인
- clear 중단점 지정후 지우기
- clear <설정된 함수이름>
- clear <설정된 라인번호>
- clear <설정된 파일이름:라인번호>
- clear <설정된 파일이름:함수이름>
- delete : 중단점 지우기
- delete <breakpoint 번호> 번호에 해당하는 중단점을 지운다.
- delete <breakpoint 번호> <breakpoint 번호> 번호에 해당하는 중단점을 모두 삭제.
- disable /enable : 중단점을 활성화/비활성화 한다.
- en 모든 중단점 활성화
- enable 모든 중단점 활성화
- enable <중단점 번호> 해당 중단점 활성화
- enable <중단점 번호> <중단점 번호> 해당 중단점 모두 활성화
- dis 모든 중단점 비활성화
- disable 모든 중단점 비활성화
- disable <중단점 번호> 해당 중단점 비활성화
- disable <중단점 번호> <중단점 번호> 해당 중단점 모두 비활성화
- tb : temporary breakpoint 일시적 브레이크 포인트
- cl : 브레이크 포인트 지우기 (옵션 동일)
- d : 모든 브레이크 포인트 지우기
4. 진행 명령어
- run (r) : 프로그램 수행
- kill (k) : 프로그램 종료
- step (s) : 현재 행 수행 후 다음 행으로 이동. 함수 실행 시 함수 내부의 행으로 이동 (어셈블리 단위 : si)
- next (n) : 현재 행 수행 후 다음 행으로 이동. 함수 실행 시 함수 전체 실행 다음 행으로 이동 (어셈블리 단위 : ni)
- continue (c) : 다음 브레이크 포인트까지 실행
- u : 현재 루프를 빠져나감
- finish : 함수 수행 후 빠져나감
- return : 함수 수행 중단 후 빠져나감 (return 1 처럼 옵션으로 리턴값 지정 가능)
- watch 변수명 : 특정 변수에 와치 포인트를 설정하고, 변수값이 변하는 지점마다 브레이크가 걸리면서 이전/현재값 출력한다.
5. 변수 출력 관련 (info, p)
- info break : 현재 브레이크 포인트 보기
- info locals : 현재 스택의 로컬변수 모두 출력
- info variables : 현재 전역변수 모두 출력
- info registers : 레지스터 전체 출력
- info all-registers : 레지스터 전체 출력 (MMX 포함)
- info args : 함수 호출 시 인자를 출력
- info catch : 함수의 예외 핸들러를 출력
- p [변수명] : 변수값 출력
- p $[레지스터명] : 레지스터값 출력
6. 스택 상태 검사
- info f [프레임 번호] : 스택 프레임 내용 출력
- bt : 전체 스택 프레임 출력
- breaktrace : 현 위치의 함수 call stack을 출력.
- bt N 현 실행 위치의 함수 call stack중 처음 n개 출력
- bt -n 현 실행 위치의 함수 call stack중 마지막 n개 출력
- bt full local 변수들도 함께 출력
- frame [스택번호] : 스택번호의 스택 프레임으로 이동
- up : 상위 스택프레임으로 이동 (up 2 : 2만큼 상위 프레임으로 이동)
- down : 하위 스택프레임으로 이동 ( down 2 : 2만큼 하위 프레임으로 이동)
7. 어셈블리 코드 및 기타
- disas func : func 함수의 어셈블리 코드를 출력
- jump 10 : 10 행으로 강제 분기
- jump func : func 함수로 강제 분기
8. 값 출력 / 변경
- print 변수 /주소 등을 출력
- print <val> 변수 출력
- p <val>
- p <func::val> 해당 함수의 변수 출력
- p *<ptr> 포인터 값 출력
- p <addr> 주소에 있는 값 출력
- p arr[n] arr배열의 n번째 값 출력
- display 매 실행 step , next, continue등 마다 출력
반응형
LIST