다음을 통해 공유


전역 변수 액세스

전역 변수의 이름은 애플리케이션이 컴파일될 때 생성되는 기호 파일에 저장됩니다. 디버거는 전역 변수의 이름을 가상 주소로 해석합니다. 주소를 매개 변수로 허용하는 모든 명령은 변수의 이름도 허용합니다. 따라서 가상 주소로 메모리 액세스 에 설명된 모든 명령을 사용하여 전역 변수를 읽거나 쓸 수 있습니다.

또한 ? (식 평가) 모든 기호와 연결된 주소를 표시하는 명령입니다.

WinDbg는 명령 외에도 전역 변수를 보고 편집하는 데 사용할 수 있는 사용자 인터페이스 요소를 제공합니다. WinDbg(클래식)에서 전역 변수 보기 및 편집을 참조하세요.

아래 예제를 고려해 보세요. 32비트 정수인 전역 변수를 검사 MyCounter 한다고 가정합니다. 또한 기본 radix가 10이라고 가정합니다.

이 변수의 주소를 가져온 다음 다음과 같이 표시할 수 있습니다.

0:000> ? MyCounter 
Evaluate expression: 1244892 = 0012fedc
0:000> dd 0x0012fedc L1 
0012fedc  00000052

첫 번째 명령 출력은 의 MyCounter 주소가 0x0012FEDC 알려줍니다. 그런 다음 d* (메모리 표시) 명령을 사용하여 이 주소에 하나의 두 단어를 표시할 수 있습니다. (이 주소의 10진수 버전인 1244892 사용할 수도 있습니다. 그러나 대부분의 C 프로그래머는 0x0012FEDC 사용하는 것을 선호합니다.) 두 번째 명령은 MyCounter 값이 0x52(10진수 82)임을 알려줍니다.

다음 명령에서 이러한 단계를 수행할 수도 있습니다.

0:000> dd MyCounter L1 
0012fedc  00000052

값을 MyCounter 10진수 83으로 변경하려면 다음 명령을 사용합니다.

0:000> ed MyCounter 83 

이 예제에서는 정수에 대해 해당 형식이 더 자연스러운 것처럼 보이기 때문에 10진수 입력을 사용합니다. 그러나 d\* 명령의 출력은 여전히 16진수 형식입니다.

0:000> dd MyCounter L1 0012fedc  00000053