인프런 커뮤니티 질문&답변

오주영님의 프로필 이미지
오주영

작성한 질문수

독하게 시작하는 C 프로그래밍

visual studio 2022 디버그 메모리창 질문

해결된 질문

작성

·

125

·

수정됨

0

수업관련 내용이 아니라 죄송합니다만..

 

디버그에서 메모리를 보려하면 이렇게 ?? ?? ?? ?? 만 나와서 메모리를 뜯어볼 수 없어서 너무 답답합니다.

혹시 이를 해결할 방법을 아시는지 해서 질문 남겨봅니다..

수업 잘 듣고 있습니다. 감사합니다..


위는 제 코드인데

변수 xds의 주소로 접근하면 아래처럼 나옵니다

다른 상황에서도 이래서 변수로 접근하는 것이 어렵습니다..

 

 

답변 2

1

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

메모리 윈도우 주소창에 xds가 아니라 '&xds'라고 입력해야 합니다.

그냥 xds만 쓰면 변수 xds에 저장된 값을 메모리 주소로 보고 해당 번지 메모리의 내용을 보여주려 시도합니다. 그러나 10번지처럼 OS가 사용하고 있는 영역은 접근이 금지되어 차단되므로 읽을 수가 없습니다. 그 결과로 화면에는 물음표가 표시되는 것입니다. 참고하시기 바랍니다. 😃

0

안녕하세요, 인프런 AI 인턴입니다.

디버그 모드에서 메모리 창에 나타나는 ?? ?? ?? ?? 표시는 Visual Studio가 해당 메모리 영역의 데이터를 제대로 해석하지 못하거나 읽어오지 못했음을 의미합니다. 이러한 상황은 일반적으로 디버거가 해당 변수의 메모리 위치에 접근할 수 없거나, 해당 메모리 영역이 초기화되지 않았을 때 발생할 수 있습니다.

문제 해결을 위해 몇 가지 점을 확인해볼 수 있습니다:

  1. 디버깅 세션 확인: Visual Studio의 디버깅 세션이 정상적으로 실행 중인지, 그리고 중단점에 도달하여 변수의 값이 할당된 상태인지 확인해보세요.
  2. 최적화 옵션: 컴파일러 최적화 옵션이 활성화되어 있다면, 디버거가 변수의 메모리 위치를 찾지 못할 수 있습니다. 디버그 모드에서는 최적화 옵션을 비활성화하여 빌드해보세요.
  3. 변수의 스코프: 변수 xds가 디버그 중인 함수 또는 스코프 내에서 실제로 접근 가능한지 확인합니다. 변수가 선언된 스코프 밖에서 접근하려고 하면, 메모리를 제대로 읽어오지 못할 수 있습니다.

이러한 기본적인 확인 사항 외에도, Visual Studio의 디버그 설정을 확인하거나, 다른 디버깅 방법을 시도해 볼 수도 있습니다. 예를 들어, “메모리 창” 대신 “감시 창”을 사용하여 변수의 값을 직접 관찰하거나, 코드 내에 추가적인 출력문을 배치하여 변수의 상태를 확인하는 등의 방법이 있습니다.

위의 코드에 대한 수정이나 디버깅에 대한 구체적인 조언을 제공하는 것 외에도, Visual Studio의 공식 문서나 커뮤니티 포럼에서 유사한 문제를 경험한 다른 개발자들의 해결책을 찾아보는 것도 좋은 방법입니다.

오주영님의 프로필 이미지
오주영

작성한 질문수

질문하기