중요하다
Visual Studio 2015에서는 식 계산기를 구현하는 이러한 방법이 더 이상 사용되지 않습니다. CLR 식 계산기 구현에 대한 자세한 내용은 CLR 식 계산기 및 관리 식 계산기 샘플참조하세요.
다음은 Visual Studio가 EE(식 계산기)에서 메서드의 로컬을 가져오는 방법에 대한 개요입니다.
Visual Studio는 디버그 엔진(DE) GetDebugProperty 호출하여 로컬을 포함하여 스택 프레임의 모든 속성을 나타내는 IDebugProperty2 개체를 가져옵니다.
IDebugStackFrame2::GetDebugPropertyGetMethodProperty 호출하여 중단점이 발생한 메서드를 설명하는 개체를 가져옵니다. DE는 기호 공급자(IDebugSymbolProvider), 주소(IDebugAddress) 및 바인더(IDebugBinder)를 제공합니다.IDebugExpressionEvaluator::GetMethodProperty제공된IDebugAddress개체와 GetContainerField 호출하여 지정된 주소를 포함하는 메서드를 나타내는 IDebugContainerField 가져옵니다.IDebugContainerField인터페이스는 IDebugMethodField 인터페이스에 대해 쿼리됩니다. 메서드의 로컬에 대한 액세스를 제공하는 인터페이스입니다.IDebugExpressionEvaluator::GetMethodProperty메서드의 로컬을 나타내기 위해IDebugProperty2인터페이스를 실행하는 클래스(샘플에서CFieldProperty호출)를 인스턴스화합니다.IDebugMethodField개체는IDebugSymbolProvider,IDebugAddress및IDebugBinder개체와 함께 이CFieldProperty개체에 배치됩니다.CFieldProperty개체가 초기화되면IDebugMethodField개체에서 GetInfo 호출되어 메서드 자체에 대한 표시 가능한 모든 정보가 포함된 FIELD_INFO 구조를 가져옵니다.IDebugExpressionEvaluator::GetMethodPropertyCFieldProperty개체를IDebugProperty2개체로 반환합니다.Visual Studio는 반환된
IDebugProperty2개체에서 EnumChildren 호출하고, 필터guidFilterLocalsPlusArgs메서드의 로컬이 포함된 IEnumDebugPropertyInfo2 개체를 반환합니다. 이 열거형은 EnumLocals 및 EnumArguments대한 호출로 채워집니다.Visual Studio는 Next 호출하여 각 로컬에 대한 DEBUG_PROPERTY_INFO 구조를 가져옵니다. 이 구조체는 로컬에 대한
IDebugProperty2인터페이스에 대한 포인터를 포함합니다.Visual Studio는 각 로컬에 대해 getPropertyInfo 호출하여 로컬의 이름, 값 및 형식을 가져옵니다. 이 정보는 로컬 창에 표시됩니다.
이 섹션에서는
GetMethodProperty 구현 은 GetMethodProperty의 구현에 대해 설명합니다.
로컬 변수를 열거하기 위한 디버그 엔진(DE) 호출 방법을 설명합니다.
로컬 속성 가져오기 DE가 하나 이상의 지역 주민의 이름, 형식 및 값을 가져오기 위해 호출하는 방법을 설명합니다.
로컬 값 가져오기 평가 컨텍스트에서 제공하는 바인더 개체의 서비스가 필요한 로컬 값을 가져오는 것에 대해 설명합니다.
지역 주민 평가 지역 주민 평가 방법을 설명합니다.
관련 섹션
평가 컨텍스트 DE가 EE(식 계산기)를 호출할 때 전달되는 인수를 제공합니다.
MyCEE 샘플 MyC 언어에 대한 식 계산기를 만드는 한 가지 구현 방법을 보여 줍니다.