45.3 함수 디버깅하기

이번에는 함수 디버깅 방법을 알아보겠습니다. 다음 내용을 소스 코드 편집 창에 입력하세요.

function.c

#include <stdio.h>

void hello()    // 반환값이 없는 hello 함수 정의
{
    printf("Hello, world!\n");    // Hello, world! 출력
}

int main()
{
    hello();    // hello 함수 호출

    return 0;
}

소스 코드 입력이 끝났으면 소스 코드 편집 창의 main 함수의 시작 중괄호 {hello 함수의 시작 중괄호 {에서 F9 키를 눌러 중단점을 설정합니다.

그림 45-2 main 함수와 hello 함수에 중단점 설정

이제 F5 키를 눌러 디버깅을 시작합니다. 그러면 먼저 main 함수에 설정된 중단점에서 프로그램이 멈춥니다.

그림 45-3 main 함수에서 프로그램이 멈춘 상태

여기서 다시 F5 키를 누르면 hello 함수에 설정된 중단점에서 프로그램이 멈춥니다.

그림 45-4 hello 함수에서 프로그램이 멈춘 상태

즉, 프로그램이 시작될 때 main 함수가 호출되고 main 함수에서 hello 함수를 호출했으므로 main → hello 순으로 호출됩니다.

Visual Studio에서 F5 키는 디버깅을 시작하는 기능도 하고, 디버깅 중일 때는 다음 중단점까지 프로그램을 계속 실행하는 기능을 합니다(메뉴에서 디버그(D) > 계속(C)).

이제 F10 키를 두 번 눌러 printf("Hello, world\n");을 실행하면 명령 프롬프트에도 "Hello, world!"가 출력됩니다(메뉴에서 디버그(D) > 프로시저 단위 실행(O)).

그림 45-5 함수 안의 코드 실행

이처럼 중단점은 여러 개 설정할 수 있으며 F5 키를 누르면 다음 중단점에서 프로그램이 멈춥니다. 따라서 함수마다 중단점을 설정하면 함수의 실행 순서를 파악할 수 있습니다.