1. 프로그램 수행 관련 명령
$ gdb -q [파일명]
=> gdb를 조용히(?) 켠다
$ run [args]
=> 디버깅할 프로그램의 수행 시작
$ set args [args]
=> 프로그램이 시작 될 때, 전달할 인자 설정
$ next [n]
=> breakpoint를 걸은 프로그램에서 다음 n(default=1)개의 문장을 수행하고 멈춘다.
=> 함수인 경우 함수 전체를 수행합니다.
$ step [n]
=> next [n]과 비슷합니다.
=> 차이점으로, 함수의 경우 함수에 들어가 한 문장씩 수행합니다.
$ continue [n]
=> Ctrl+C이나 breakpoint에 멈추어진 프로그램의 수행을 계속합니다.
=> 여기서 n이 지정될 경우 n번째 breakpoint에서 수행을 멈추게 됩니다.
2. 브레이크 포인트
$ watch [EXP]
=> expression EXP 에 대한 watchpoint를 설정합니다.
=> EXP의 값이 변할 때마다 프로그램의 수행을 멈춥니다.
$ delete [N]
=> breakpoint를 제거합니다. 인자값이 없으면 모든 bp를 제거합니다.
=> delete breakpoint 1 ( 예시 )
$ enable [N .. ]
=> breakpoint를 enable 시킵니다. N은 breakpoint 숫자입니다.
3. 상태 확인
$ info breakpoints [N]
=> 설정된 breakpoint 상태를 보여줍니다.
$ info args
=> 현재 스택 프레임의 인자 변수를 보여줍니다.
$ info display
=> 프로그램이 멈출 때 출력할 expression을 보여줍니다.
4. 이 외의 명령어
$ quit
=> gdb를 종료합니다.
$ make [args]
=> make를 실행합니다.
$ set disassembly-flavor intel
=> intel 형식으로 어셈블리를 봅니다. ( set dis int 줄임 가능 )
$ disassembly [func_name]
=> 함수의 어셈구문 코드를 확인합니다.
$ print [$register or func_name]
=> 스택에 저장된 값을 보여줍니다.
$ x/x [$register]
=> 해당 레지스터에 들어있는 값을 Hex로 표현
$ x/5s [$register]
=> 해당 레지스터에 들어있는 값을 String으로 5개까지 표현
$ x/d [$register]
=> Decimal
$ x/i [$register]
=> Instructions
$ list
=> Source File이 어딨는지 보여줌
$ where
=> 어디에서 실행되었는지 보여줌
$ main info sec
=> 실행가능한 섹션들을 보여줍니다.
'시스템' 카테고리의 다른 글
dummy 크기 정확히 파악하기 - 출처 http://beist.org (0) | 2016.05.01 |
---|---|
코어덤프 (0) | 2016.05.01 |
공유메모리 (0) | 2016.02.18 |
시스템 $0x80 (0) | 2016.02.11 |
프로시저와 스택 구조 (0) | 2016.02.10 |