중요합니다
Visual Studio 2015에서는 식 계산기를 구현하는 이러한 방법이 더 이상 사용되지 않습니다. CLR 식 계산기 구현에 대한 자세한 내용은 CLR 식 계산기 및 관리 식 계산기 샘플을 참조하세요.
실행은 항상 포함하는 메서드 또는 현재 메서드라고도 하는 메서드의 컨텍스트 내에서 발생합니다. 실행이 일시 중지되면 Visual Studio는 DE(디버그 엔진)를 호출하여 메서드의 로컬이라고 하는 지역 변수 및 인수 목록을 가져옵니다. Visual Studio는 로컬 창에 이러한 지역 및 해당 값을 표시 합니다 .
로컬을 표시하기 위해 DE는 EE에 속하는 GetMethodProperty 메서드를 호출하고 평가 컨텍스트, 즉 SP(기호 공급자), 현재 실행 주소 및 바인더 개체를 제공합니다. 자세한 내용은 평가 컨텍스트를 참조하세요. 호출이 성공하면 메서드는 IDebugExpressionEvaluator::GetMethodProperty 현재 실행 주소를 포함하는 메서드를 나타내는 IDebugProperty2 개체를 반환합니다.
DE는 EnumChildren을 호출하여 IEnumDebugPropertyInfo2 개체를 가져오며, 이는 지역 변수만 반환하도록 필터링되고, 열거 후 DEBUG_PROPERTY_INFO 구조 목록을 생성합니다. 각 구조체에는 로컬의 이름, 형식 및 값이 포함됩니다. 형식 및 값은 형식이 지정된 문자열로 저장되며 표시에 적합합니다. 이름, 형식 및 값은 일반적으로 지역 창의 한 줄에 함께 표시됩니다.
비고
QuickWatch 및 조사식 창에는 이름, 값, 형식이 동일한 양식으로 변수가 표시됩니다. 그러나 이러한 값은 대신 GetPropertyInfoIDebugProperty2::EnumChildren를 호출하여 가져옵니다.
이 부분에서는
로컬의 샘플 구현에서는 예제를 사용하여 로컬 구현 프로세스를 단계별로 실행합니다.
관련 콘텐츠
평가 컨텍스트 는 디버그 엔진(DE)이 EE(식 계산기)를 호출할 때 세 개의 인수를 전달한다고 설명합니다.