
gdb를 실행하기 위해서는 gdb (컴파일된) 실행 파일 이름으로 입력하여 시작하여야 합니다.

gdb에서 list 옵션을 줘서 소스코드를 출력할 수는 있지만 그러기 위해선 gcc로 컴파일 할때 기본적으로 붙는 -o외에도 -g를 붙여서 디버깅이 가능하도록 해주어야 합니다.

gdb에 장점 중 하나라고 생각하는 함수별 디스어셈블 기능입니다. 하지만 이것이 오히려 직접 부딪혀 봐야하는 저 같은 초보자들에게는 단점이 될 수도 있습니다.

gdb도 여타 다른 디버거들과 같이 실행 기능 또한 있습니다.

주소로 브레이크포인트를 잡을 수도 있고, 함수 이름으로 잡을 수도 있습니다.
브레이크를 걸면 아래와 같이 실행 됩니다.

위 그림과 같은 상황에서 step이나 next를 통해 다음 단계를 실행 할 수 있다.



info registers 명령어는 break 명령어로 breakpoint를 걸고 run명령으로 run을 해야 실행할 수 있습니다.
섹션은 동일한 역할을 하는 세그먼트의 집합입니다.

kill 명령어를 쓰면 디버깅을 위에 사진과 같이 중단 할 수 있습니다.

continue 명령을 사용하면 중단된 그 지점 부터 바로 프로그램 끝까지 실행할 수 있습니다.

help 명령어를 통해 명령어의 리스트를 출력 할 수 있다.

clear 명령어를 사용하면 특정 함수나 라인에 있던 breakpoint를 지울 수 있다.

info b를 사용하면 지금까지 걸린 breakpoint 리스트를 볼 수 있습니다.
Tip. break, run, info, list, backtrack, temporary breakpoint, clear, until, continue 등.. 이러한 약어들을 gdb에서 사용 할 수 있습니다

info 뒤에 올 수 있는 인자들을 보여줍니다

방향키 Up/Down을 통해 그동안 실행한 명령어들을 볼 수 있다.

disable 명령어를 통해 특정 고유번호를 가진 breakpoint를 비활성화 할 수 있습니다.

enable 명령어를 사용하면 특정 고유번호를 가진 비활성화된 breakpoint를 활성화 할 수 있습니다.

temporary breakpoint를 쓰면 한 번 쓰면 끝나는 임시 브레이크포인트를 만들 수 있습니다.


전에 명령어를 실행하고 그냥 엔터를 치면 전에 쳤던 명령어가 자동으로 입력되는 것 같다.

이건 뭐지...? Cygwin 때문이라는 데… 혹시 아시는 분 댓글 좀 달아주세요...

이건 뭐야...? 혹시 아시는 분 댓글 좀 달아주세요...

뭐가 뭔지 모르겠네요 ㅠㅠ

마지막으로, quit 명령어를 실행하면 종료가 가능합니다.
P.S 알아두면 좋을 x64디버거 사용 tip
1. F7은 함수가 있으면 들어가고 F8은 무조건 한 블록 씩 건너뛴다
2.

3.

4.

'기타 공부' 카테고리의 다른 글
| [학술제] VScode SSH 원격접속 (0) | 2023.11.10 |
|---|---|
| 시스템 공부 3일차 (파이썬 공부 및 Docker환경 구축) (0) | 2023.09.29 |
| 시스템 공부 1일차 (폰 노이만 구조) (0) | 2023.09.29 |