47.3 디버거에서 매개변수와 반환값 확인하기

이번에는 디버거에서 매개변수와 반환값을 확인해보겠습니다. 다음 내용을 소스 코드 편집 창에 입력하세요.

add_function.c.

#include <stdio.h>

int add(int a, int b)    // 반환값 자료형은 int, int형 매개변수 두 개 지정
{
    return a + b;    // 매개변수 a와 b를 더한 결과를 반환
}

int main()
{
    int num1;

    num1 = add(10, 20);     // 함수를 호출할 때 10과 20을 전달. 10과 20을 더한 값인 30이 반환됨

    printf("%d\n", num1);   // 30

    return 0;
}

소스 코드 입력이 끝났으면 소스 코드 편집 창의 num1 = add(10, 20);에서 F9 키를 눌러 중단점을 설정합니다.

그림 47-3 중단점 설정

이제 F5 키를 눌러 디버깅을 시작하면 num1 = add(10, 20);에서 프로그램이 멈춥니다. 이 상태에서 F11 키를 누릅니다(메뉴에서 디버그(D) > 한 단계씩 코드 실행(I)).

그림 47-4 add 함수를 호출하기 직전

F11 키를 누르면 노란색 화살표가 add 함수 안으로 이동합니다. 즉, F11 키는 함수 호출 부분에서 함수 안으로 이동하는 기능입니다(현재 코드가 함수 호출이 아닐 때는 F10처럼 다음 줄로 이동합니다). 그리고 화면 아래쪽 자동 창을 보면 add 함수의 매개변수 값이 표시됩니다.

그림 47-5 add 함수 안으로 들어옴

add(10, 20)과 같이 호출했으므로 a에는 10, b에는 20이 들어가 있는 것을 확인할 수 있습니다.

이제 함수를 빠져나가보겠습니다. Shift+F11을 누르면 다음과 같이 노란색 화살표가 다시 num1 = add(10, 20);으로 이동합니다(메뉴에서 디버그(D) > 프로시저 나가기(T)). 그리고 화면 아래쪽 자동 창을 보면 "add이(가) 반환되었습니다."라고 나오고 30이 표시됩니다.

그림 47-6 add 함수를 빠져나옴

자동 창은 함수를 빠져나오면 함수의 반환값이 표시됩니다. 여기서는 add 함수에서 10과 20을 더했으므로 반환값 30이 맞습니다.

F10 키를 눌러 코드를 한 줄 더 실행하면 반환값이 변수 num1에 저장됩니다.

그림 47-7 add 함수의 반환값이 변수 num1에 저장됨

이처럼 F11과 Shift+F11키를 사용하면 함수의 안과 밖을 자유롭게 이동할 수 있습니다. 마지막으로 지금까지 배운 Visual Studio 디버거 단축키를 모두 정리해보겠습니다.

  • 중단점 삽입/삭제: F9
  • 디버깅 시작 및 계속: F5
  • 디버깅 중지: Shift+F5
  • 프로시저 단위 실행: F10
  • 한 단계씩 코드 실행: F11
  • 프로시저 나가기: Shift+F11
참고 | F10 키로 함수 빠져나오기

Shift+F11 키 이외에도 F10 키로도 함수를 빠져나올 수 있습니다. 먼저 F10 키를 여러 번 눌러서 함수가 끝나는 중괄호 }까지 실행합니다.

그림 47-8 }까지 F10으로 실행

중괄호 }에서 다시 F10 키를 누르면 함수를 빠져나옵니다.

그림 47-9 F10으로 함수를 빠져나옴