[GDB] 명령어 정리
1. gdb [파일]
파일을 gdb로 불러온다.
* 옵션
gdb -q [file] : gdb를 시작할때 여러정보들을 출력하지 않고 실행된다.
gdb --args [file] [argv1] [argv2] ... : 파일과 함께 인자들을 줄 수 있다.
2. r / run
gdb로 불러온 프로그램을 실행한다.
*옵션
run argv1 argv2 ... : 위에서 gdb --args로 인자를 넘길수도 있지만 이 명령어에서 옵션을 주어 인자를 넘길 수도 있다.
3. disas [함수] / disassemble [함수]
특정 함수의 어셈블리 코드를 보고싶을때 사용한다.
4. b *[주소] / break *[주소]
입력한 주소 위치에 브레이크 포인트를 설정한다.
5. b [function] / break [function]
함수에 브레이크 포인트를 건다. 단, 함수의 프롤로그까지 프로그램을 동작시키고 그 이후 멈춘다.
6. b *[function] / break *[function]
5번과 마찬가지로 함수에 브레이크 포인트를 거는 명령어. 단, 함수의 프롤로그 시작 부분에 브레이크 포인트를 걸어 함수 시작 전까지 프로그램을 돌리고 멈춘다.
7. c / continue
gdb를 통해 프로그램을 실행시킨 후 브레이크 포인트까지 프로그램을 실행한다.
8. q / quit
프로그램을 종료한다.
9. info [function] / info [break] / info [register]
각각 함수, 브레이크 포인트, 레지스터의 정보를 출력한다.
[function] : 메모리에 올라가있는 함수의 목록과 주소를 알 수 있다.
[break] : 걸려있는 브레이크 포인트의 위치를 알 수 있다.
[register] : 레지스터의 상태를 알 수 있다.
10. del [number] / delete [number]
특정 number의 브레이크 포인트를 제거한다.
* del / delete : 모든 브레이크 포인트를 제거
11. si / stepi
코드를 한줄 실행하는데, 함수 안으로 들어간다.
12. ni / nexti
코드를 한줄 실행하는데, 함수 안으로 들어가지 않는다.
13. p [function] / print [function]
해당 함수의 주소를 출력한다.
14. p $[reg]
해당 레지스터(reg)의 값을 출력한다.