C

magic debug value

GunwooYun 2022. 5. 25. 18:22

visual studio에서 변수를 선언하고 할당된 메모리에 다음과 같은 값들을 확인할 수 있다.

 

FA68번지부터 60번지까지 보면 첫 4byte의 값은 모두 'c'로 저장되어 있고, 다음 4byte는 0으로, 그다음 4byte는 다시 'c'로 저장되어 있는것을 확인할 수 있다. 이는 vs에서 사용되지 않을 스택 메모리에 마크해 놓는 것이다.

 

위키피디아에서 다음과 같이 설명한다.

 

그리고 이 영역을 참조하려한다면 당연히 에러가 발생한다. 여러 변수를 선언한 아래 사진에서도 magic debug value를 확인할 수 있다.

CCCCCCCC Used by Microsoft's C++ debugging runtime library and many DOS environments to mark uninitialized stack memory. CC resembles the opcode of the INT 3 debug breakpoint interrupt on x86 processors.

 

 

이처럼 여러 변수를 선언해도 앞뒤 4byte에 해당 value가 넣어지는 것을 확인할 수 있다.