디버깅 (V3.3 추가)

V3.3에서는 Tool에 Debug 메뉴가 추가되었습니다.

버그가 있는 프로그램을 디버그하려면 디버깅 대상 프로그램을 디버거로 실행시킵니다. 실행 중에 특정 명령에 도달하거나 특정 변수를 수정할 필요가 있을 때 디버거를 통해 일시 정지합니다. 이와 같이 프로그램의 실행이 일시 정지되어 있는 동안 사용자는 데이터의 현재값을 점검하고 예상 경로를 따라 프로그램이 진행하고 있는지 확인합니다.

개발자가 프로그램의 중단 시점을 표시한 특정 표시를 브레이크 포인트(Break Point)라고 합니다.

Debug Start

1부터 100까지의 합을 구하는 프로그램을 예로 들어 설명합니다.

화면 구성은 [그림 7-1]과 같습니다.

1부터 100까지의 합을 구하는 프로그램

프로그램 실행 도중 변화하는 값을 체크하려면 [그림 7-2]와 같이 Breakpoint를 설정합니다. Breakpoint 설정은 해당 Row로 커서를 옮겨 <F9>를 누릅니다. Breakpoint를 제거하려면 해당 라인에 커서를 옮긴 다음 <F9>를 다시 누릅니다. Breakpoint가 off로 토글됩니다.

Breakpoint의 설정

디버그 모드로 프로그램을 실행합니다.

소스코드에서 최소한 하나 이상의 Breakpoint를 설정하였으면 [그림 7-3]의 Toolbar 아이콘을 클릭하거나, 메뉴 [Debug &ndash; Debug Form]을 선택합니다. 단축키 <F6>를 눌러도 같은 기능을 합니다.

Debug Bar - Start

Debug Menu

[그림 7-5]는 프로그램이 일시 중지된 화면입니다. 화면에 표시된 화살표는 현재 실행되고 있는 명령 행의 위치를 표시합니다.

프로그램의 제어가 디버거로 넘어온 상태

디버그가 시작되면 [그림 7-6]과 같이 Watch, Variables 및 Debug 창이 활성화됩니다. 각 창에 대한 설명은 6장 [6.4. Debug Window]을 참고하십시오.

Debug Windows

Debug Break

[그림 7-7]은 소스코드에서 현재 커서가 있는 줄에 Breakpoint를 설정하는 Toolbar 아이콘입니다.

Debug Bar - Breakpoint

Debug Stop

[그림 7-8]의 Debug Stop 아이콘을 클릭하여 디버거를 종료합니다. 디버거와 프로그램이 한 번에 종료됩니다.

Debug Bar - Stop

Debug Window

디버거가 추적한 변수와 식의 현재값 또는 프로그램이 일시 정지될 때마다 특정 변수의 현재값을 알고 싶은 경우 해당 변수를 [그림 7-9]의 Watch 창에 등록합니다. 프로그램 일시 정지될 때 또는 프로그램 진행 중에 변화되는 값이 표시됩니다.

Watch Window

[그림 7-10]은 일시 정지 위치, 혹은 가장 가까이 인접한 변수의 현재값을 나타내는 화면입니다.

Variables Window

[그림 7-11]은 디버거의 실행상태를 나타내는 화면입니다.

Debug Window

Debug 명령어

[그림 7-12]은 디버그 모드에서 사용할 수 있는 아이콘입니다.

Debug Bar

Debug 명령어

아이콘

기능

설명

Start Debug

디버깅 모드 시작 <F5>

Stop Debug

디버깅 모드 종료

Step In

한 스텝씩 디버그, 스텝에 다른 함수 호출 시 해당 함수로 이동 <F11>

Step Out

한 스텝씩 디버그, 한 스텝을 모두 실행하고 다음 스텝으로 이동 <F10>

Step Over

현재 함수의 나머지 부분을 실행하고, 함수 호출이 이루어진 다음 문장에서 멈춤

Step to

현재 커서가 위치한 줄까지 실행 후 멈춤

Breakpoint

Breakpoint를 설정하는 기능

Delete All Breakpoints

설정된 Breakpoint를 해제

Log Viewer의 사용

Log Viewer는 프로그램 실행 도중 어떤 값을 알고자 할 때 간단하게 사용할 수 있는 미니 디버거 정도의 프로그램입니다. Log Viewer에는 이 밖에도 프로그램의 실행 도중 발생하는 에러에 대한 메시지도 표시됩니다.

프로그램 실행 도중 특정값이 어떻게 변하는지를 살펴봅니다. [그림 7-5]에서 작성한 소스코드를 [그림 7-13]과 같이 수정합니다.

Trace 명령을 실행하면 Log Viewer에 인자값이 표시됩니다. 그러나 디버그 모드처럼 프로그램이 중단되지는 않습니다.

Trace 명령

[그림 7-14]는 프로그램 실행 중 Trace된 내용이 표시된 Log Viewer 화면입니다.

Log Viewer