글
이번 포스팅에서는, Windows 64 bit 환경에서, Code Blocks 디버깅하는 방법에 대해서 말씀드리겠습니다. 먼저, Windows 64 환경에 Code Blocks 설치하는 방법을 모르시는 분들은 다음 URL 을 참고하십시오.
(Windows 64 bit 에 Code Blocks 설치하기 참고)
http://kkikkodev.tistory.com/42
먼저, 디버깅을 하기 전에, 디버깅 테스트 하기 위한 예제 소스 코드를 위와 같이 미리 작성해 보았습니다. 간단한, main 함수, 그리고 func 함수 로 이루어진 소스 코드입니다.
가장 먼저, 할 일은, debugger 설정입니다. Windows 64 bit 에서 사용할 mingw 를 다운로드 받아 설치하면, 그 폴더 안에 gdb 가 존재하는 것을 볼 수 있습니다. gdb 는 GNU Debugger 를 뜻하는데, 이는 GNU 소프트웨어 시스템을 위한 기본 디버거를 말합니다. mingw 설치방법은 다음 URL 을 참고하세요.
(Windows 64 bit 에 mingw 설치하기 참고)
http://kkikkodev.tistory.com/41
이러한 gdb 를 Windows 64 bit Code Blocks 의 기본 컴파일러로 설정해야 합니다.
Settings 의 Debugger 메뉴를 클릭합니다.
좌측의 Default 를 클릭합니다.
Excutable Path 를 미리 다운받은 mingw 64 bit gdb 로 설정해주어야 합니다. 지정 버튼을 클릭을 합니다. 물론, gdb 상세 옵션 설정 등도 때에 따라 할 수도 있지만, 여기에서는 default 로 사용하기로 하겠습니다.
먼저, mingw64/bin 폴더로 이동합니다. 그 다음에 gdb.exe 를 선택한 후, 열기를 클릭하여 지정해줍니다.
우리의 gdb 로 설정된 것을 확인할 수 있고, OK 를 클릭하여 Debugger 설정을 완료합니다.
이제, Debugger 설정을 마쳤으니, 실제 디버깅을 시작해야 할 차례입니다. 디버깅 시작 방법은 총 2 가지가 있습니다.
첫째, 마우스 클릭으로 원하는 line 의 좌측 부분을 클릭하여 (빨간 원으로 표시되도록) breakpoint (디버깅 기준점) 를 잡고, 상단의 디버깅 메뉴 중에서 Debug / Continue 를 클릭하여 시작하는 방법입니다.
둘째, breakpoint 를 굳이 잡지 않고, 커서만 원하는 라인으로 이동한 후에, 디버깅 메뉴 중, Run to cursor 를 클릭하여 디버깅을 시작하는 방법입니다. 두 가지 디버깅 시작 방법 중, 편하신 것을 선택하여 시작하면 됩니다.
디버깅을 시작하면, 디버깅 시작하는 line 의 좌측에 노란 색의 세모 화살표가 표시되는 것을 볼 수 있습니다. 이것이 현재 디버깅 하고 있는 line 을 의미하는 화살표입니다. 하지만, 디버깅시 확인해야 할 변수값들이 모여 있는 창이 보이지 않습니다. 디버깅 메뉴 중에서, Debugging windows 를 클릭합니다.
나타나는 메뉴 중에서, Watches 를 클릭합니다.
그러면, 위와 같이, 디버깅 하는 line 시점에서, 확인할 수 있는 변수들과 그 값들을 볼 수 있는 창이 나타납니다. 이제, 다음 line 으로 이동해 보겠습니다.
디버깅 메뉴 중, Next line 을 클릭하여 다음 line 으로 이동합니다.
line 이 바뀌면서, 변수값도 변하는 것을 확인할 수 있습니다.
자동으로 보여지는 변수 외에, 다른 변수값을 보고 싶을 때는, 직접 변수명을 입력하면 확인할 수 있습니다.
한 줄씩 디버깅을 시작하다가, 다른 함수 호출문장이 있을 때, 그 함수의 정의부로 넘어가서 디버깅을 하고 싶을 때는, 디버깅 메뉴 중에서, Step into 를 클릭합니다.
그러면, 디버깅 포인트가 호출된 함수로 넘어가게 되고, 변수들도, 함수의 매개변수값과 지역변수로 나누어져서 나타나게 됩니다.
디버깅을 도중에 종료하고 싶으면, Stop debugger 를 클릭하여 종료하면 됩니다.
지금까지, Debugger 설정부터 다음 줄로 내려가면서 하는 디버깅과 함수 안으로 이동하는 디버깅 방법에 대해서 말씀드렸습니다.
위의 2 가지 메뉴가 가장 자주 사용하는 디버깅 메뉴이고, 이제는 그 외의 다른 다양한 디버깅 메뉴들을 마저 살펴보도도록 하겠습니다.
[Debug / Continue]
Debug / Continue 메뉴는 첫 breakpoint 로 이동하면서 디버깅을 시작하거나, 다음 breakpoint 로 이동합니다.
[Run to cursor]
Run to cursor 는 소스 코드 중에서, 현재 마우스 커서가 있는 위치를 기준으로 디버깅을 시작하거나, 혹은 디버깅 중에 특정 커서 위치로 바로 디버깅 시점을 이동할 수 있게 합니다.
[Next line]
Next line 은 한 line 씩 내려가면서 디버깅 시점을 이동합니다.
[Step into]
Step into 는 함수 호출시, 호출되는 함수 안으로 디버깅 시점을 이동합니다.
[Step out]
Step out 은 Step into 와 반대 개념으로, 현재 함수를 호출했던 곳으로 빠져 나갑니다.
[Next instruction]
Next instruction 은 C 언어 말고, 기계어 단위 코드를 디버깅 할 때, 한 명령어씩 디버깅 시점을 이동합니다. (function 진입 안 함)
[Step into instruction]
Step into instruction 은 기계어 단위 코드를 디버깅 할 때, function 으로 진입하여, 다음 명령어로 디버깅 시점을 이동합니다.
[Break debugger (잘 모르는 기능)]
Break debugger 는 잘 모르는 기능입니다. 혹시, 아시는 분은 댓글이나, 메일로 답변해주시면 감사하겠습니다.
[Stop debugger]
Stop debugger 는 디버깅을 종료합니다.
[Debugging windows]
Debugging windows 는 디버깅과 관련된 내용들을 확인할 수 있도록 합니다. (Breakpoiints, CPU Registers, Call Stack, Disassembly, Memory dump, Running threads, Watches)
'8.2) IDE > CODE BLOCKS' 카테고리의 다른 글
Code Blocks 단축키 모음 (0) | 2015.05.22 |
---|---|
Code Blocks Windows 64 bit 에 설치후 C 언어 프로젝트 생성하기 (14) | 2015.04.27 |
Code Blocks Ubuntu 에 설치하고 C 언어 프로젝트 생성하기 (0) | 2015.04.27 |
RECENT COMMENT