본문 바로가기
OS/Linux

[Linux/C] GDB

by dev_Step 2022. 3. 25.

GDB의 경우 Linux 로 컴파일 한것을 디버깅할수 있을 도구로

 

gcc -g [파일명] 을통해서 디버깅 할수 있도록설정한다음

gdb [컴파일한 파일명] 을 통해서 GDB로 접속한다.

 

기본적인 명령어로서

disas main  :  main() 함수에 적혀있는 함수를 어셈블리 언어로 확인할 수 있다.

l : 코드를 10줄 보여주며, l을 누를때마다 10줄씩 보여준다.

b : break point를 찍는 명령어로써, 코드를 실행시에 멈추게 되는 부분이다.

r : 코드를 진행시킨다. Break Point 가 체크되어 있다면 해당 Break Point 에서 멈추게된다.

n : 한줄을 실행 시키는 명령어로써 함수가 있을경우 해당 함수를 실행시키면서 한줄을 넘어가게된다.

(해당 함수 안에 들어가서는 n키를 사용하는게 편하며 s를 계속 사용할시 printf 안으로 들어가거나 하게되므로 함수 안으로 들어갈지 말지를 생각하여 n,s를 구분하여 사용하자)

s : 한줄을 실행시키지만, 해당 줄에 함수가 있을경우 해당 함수 안으로 들어간다. 

p : 해당 줄에서 사용된 변수의 값을 확인 할수 있으며. 한개씩 볼떄는 p [볼 변수명] 여러개를 볼떄는 p {변수명1, 변수명2, 변수명3 } 이렇게 사용하면된다.

display : 보고싶은 변수를 게속 따라다니면서 볼수있으며 사용법은 p와 동일하다, display가 끝나는 시점은 해당 변수를 사용하는 함수가 끝날시에 사라진다. 해당 변수를 지우고 싶은떄는 delete display [변수명] 을사용하면된다.

d :  브레이크 포인트를 삭제할때 사용하며, d [몇번쨰 Break Point] 로 지우며 Break Point의 현황은

info b : 를 통해서 확인 할 수 있다.

'OS > Linux' 카테고리의 다른 글

[Linux/C] Makefile  (1) 2022.05.19
[C/Linux] 헤더 파일  (0) 2022.05.16
[Linux/C] 함수 포인터  (0) 2022.03.24
[Linux/C] 포인터  (0) 2022.03.23
[Linux/C] 비트연산자  (1) 2022.03.16