C언어 C++ Programming

[C언어]Visual Studio 지역 변수의 스택 값 확인(Local Variable, Stack Memory)

끄적끄적아무거나 2023. 7. 17. 08:06
반응형

 

목차

     

     

     

     

     

    [C Programming] Visual Studio 지역 변수의 스택 값 확인 예제

     

    제가 현재 사용하고있는 IDE는 Visual Studio 2022 Community 버전입니다.

     

    우선 예제로 사용할 코드는 아래와 같습니다.

     

    예제 코드>>

    #include <stdio.h>
    
    void sum(int a, int b) {
        int result = a + b; // 지역 변수 선언 및 초기화
    
        printf("The sum of %d and %d is %d\n", a, b, result);
        printf("The address of result variable: %p\n", (void*)&result);
        // result 변수의 주소값 출력
    }
    
    int main() {
        int x = 5; // 지역 변수 선언 및 초기화
        int y = 3; // 지역 변수 선언 및 초기화
    
        printf("The address of x variable: %p\n", (void*)&x);
        printf("The address of y variable: %p\n", (void*)&y);
        // x와 y 변수의 주소값 출력
    
        sum(x, y);
        // sum() 함수 내에서 선언된 result 변수의 주소값에는 접근할 수 없습니다.
    
        return 0;
    }

    12번 x 변수 선언 부터 Debug를 진행하겠습니다. 

     

     

     

     

     

    위 그림을 보시면 좌측 중간에 빨간색 원이 보이실 겁니다. 빨간색 원을 만드는 방법은 마우스로 해당 위치에서 클릭하시면 됩니다. 의미는 12번 라인 부터 디버깅을 진행하겠다는 의미입니다. 

     

     

    상단에 위 모양을 클릭하시면 디버깅이 진행 됩니다.

     

     

    디버깅이 진행된 전체 화면은 위와 같습니다. 왼쪽 하단의 Locals를 통해서 스택 메모리의 값들을 확인할 수 있습니다.

     

     

     

     

    F11 키를 누르면 Debugging Step Into가 동작해서 위 그림과 같이 왼편의 화살표가 한칸씩 이동하면서 지역 변수(Local Variable)의 변화를 알려 줍니다. 처음에 Garbage 값들에서 점차 값들이 채워 집니다.

     

     

     

    그림처럼 Sum 함수가 진행될때는 x, y 지역 변수 값들이 사라지게 됩니다. 

     

     

     

    [C Programming] 예제 코드 다운로드

     

    Project7.c
    0.00MB

    반응형