뒤로 미루고 공부하는 gdb의 사용법 gdb는 GNU debugger로 GNU 소프트웨어 시스템을 위한 디버거다.코드만으로 디버깅하기에는 한계가 있기 때문에 stack level까지 보여주는 gdb를 사용한다.하지만 나는 새로운 것을 두려워하는 사람으로서 지금까지… 배우지 않은… 1.gdb 사용준비(?) 컴파일 시-g 옵션을 주어야 한다.
g++ [source file] -g 기타 등등 옵션
그리고 gdb를 붙여 실행파일을 실행시키면 gdb가 동작한다.
자 이제 사용법을 알아보자.ㅎㅎㅎㅇㅂㅇ먼저 breakpoint를 걸어야 한다.gdb에서 breakpoint는 설정해 놓은 breakpoint 앞까지 실행되며 멈출 때 사용한다.2. breakpoint 설정방법
(gdb)b함수(gdb) 브레이크함수
1) 먼저 break point를 설정하는 명령어로 borbreak을 사용한다.2) break point는 다양한 방식으로 설정할 수 있다.(gdb)b함수(gdb)b파일명:line Number(gdb)b*메모리주소3) 실행(gdb)r(gdb)실행그리고 r(orrun)로 실행시키면 breakpoint 앞까지 실행되어 잠시 실행이 중단된다.그런데…Abort 에러가 발생했다. 이게 왜냐하면… 내가 실행시킨 파일은 Agument를 줘야 하는 실행 파일이었는데 이걸 안 줘서 abort가 나온 것이다. 이게 gdb의 문제가 아니라실제로 argument 없이 실행시키면 abort가 나오고, 이것을 gdb에서 보여준 것일 뿐… 이를 방지하기 위해서는gdb 실행 시 처음부터 –agrs 옵션을 주거나 실행 시 run(orr) 뒤에 argument를 붙여주면 된다.그러면 정상적으로 작동한다. breakpoint 앞에서 멈추는데 이때 n(next)을 입력하면 한 줄 실행되는 것을 볼 수 있다. 다음 breakpoint까지 실행시키려면 c(continue)를 입력한다.(gdb)c(gdb)이어4.●●1)프린트, 손목시계(gdb) p변수명(gdb) print 변수명(gdb) p변수명(gdb) print 변수명(gdb) wa변수명(gdb) watch변수명변수값을 눌러보는 print 명령과 변수값 변화를 모니터링하는 watch 명령어가 있다.print는 현재 실행에서의 변수 값을 나타내고 watch는 변수 값이 바뀔 때마다 old value, new value로 알려준다.2) ctrl+x+a 이 단축키를 사용하면 code view가 나타난다.(gdb) 레이아웃 다음를 입력하면 code view layout을 변경할 수 있다.code view를 끄고 싶으면 똑같이 ctrl+x+a를 누르면 된다.3) btbacktrace 보기 명령어이렇게 backtrace가 나온다.어떤 것이 불렸는지 함수 순서대로 호출한 스택 정보를 보여준다.4) 종료(gdb)q(gdb)キ이외에도 많은것들이 있지만 일단은 이정도만….엉엉….어려워….디버그….언니가 gdb공부 안했으면 물도 마시지말라고해서 덕분에(?)쉽게라도 공부ㅋㅋ