Deeper Learning

Visual Studio 메모리 확인 방법, 32bit 64bit 운영체제 본문

Game Development/C&C++

Visual Studio 메모리 확인 방법, 32bit 64bit 운영체제

Dlaiml 2024. 4. 11. 12:15

파이썬 인공지능 개발자, 리서쳐로 쭉 일을 해오다 보니 수학, 통계, 논문에 쓰는 시간이 매우 많아 비교적 타 개발자보다 다른 프로그래밍 언어, CS에 대한 지식이 부족하다고 느껴왔다.

3년만에 다시 배우는 C/C++ & 기초 CS에 대한 정리 /  현재 참여중인 언리얼엔진 기반 게임개발 학습 관련해서 포스팅을 블로그에 이어 작성하고자 합니다

 

Visual Studio 2022 디버그에서 메모리 확인법

 

F9를 눌러 원하는 line에서 Breakpoint를 걸고 F5를 눌러 디버깅 시작.

Breakpoint에 멈춰있는 상태에서 상단 디버그 -> 창 -> 메모리 -> 메모리1,2,3,4 모두 동일 (개발자 편의를 위한 창들)

 

우측 주소창에 변수명을 입력하거나 변수를 클릭 후 드래그하면 해당 변수의 메모리 주소를 바로 보여줌.

가장 오른쪽의 열은 한 행에 볼 수 있는 메모리 주소의 개수를 의미함

 

하나의 메모리 주소에 1byte = 0xcc (16진수 2자리 = 4bits *2 = 8bit = 1byte) 를 보여주기 때문에

열이 16일 때 보면 메모리 주소가 0x..(중략)..B8에서 0x..(중략)..C8까지 16이 증가한 것을 볼 수 있음 

 

 

exampleString을 0으로 초기화 하면 바뀐 부분이 빨간색으로 표시된다.

x64 운영체제(CPU 관련 제약은 우선 제외)를 사용하기 때문에 메모리 주소의 경우 16자리의 16진수로 구성되어 있다 (16 * 4 = 64bits)

 

0x0000000000000000부터 0xFFFFFFFFFFFFFFFF 까지 모두 디비거의 메모리 창에서 확인할 수 있지만

물리적으로 해당 공간을 모두 사용하는 것은 현실적으로 불가능하다. (2^64 Bytes = 16 엑사바이트= 16,000 페타바이트 = 16,000,000 테라바이트 = 16,000,000,000 기가바이트)

 

32bit 기반 운영체제의 경우 같은 계산을 해보면 RAM에서 인식가능한 최대 용량이 4GB인 이유를 알 수 있다.

 

(가상 메모리, 페이징, 물리적주소, 논리적주소 관련 키워드들은 추후 포스팅에서 다시 다룰거라 의도적으로 배제하고 설명하였습니다)

'Game Development > C&C++' 카테고리의 다른 글

References의 주소  (0) 2024.04.17
Comments