EE(식 계산기)는 런타임에 변수 및 식을 구문 분석하고 평가하기 위해 언어 구문을 검사하여 IDE가 중단 모드에 있을 때 사용자가 볼 수 있도록 합니다.
수식 평가기 사용
식은 다음과 같이 ParseText 메서드를 사용하여 생성됩니다.
디버그 엔진(DE)은 IDebugExpressionContext2 인터페이스를 구현합니다.
디버그 패키지는
IDebugExpressionContext2인터페이스에서 개체를 가져오 고 해당 인터페이스의 메서드를 호출IDebugStackFrame2::ParseText하여 IDebugExpression2 개체를 가져옵니다.디버그 패키지는 EvaluateSync 메서드 또는 EvaluateAsync 메서드를 호출하여 식의 값을 가져옵니다.
IDebugExpression2::EvaluateAsync는 명령/직접 실행 창에서 호출됩니다. 다른 모든 UI 구성 요소는IDebugExpression2::EvaluateSync을 호출합니다.식 계산의 결과는 식 계산 결과의 이름, 형식 및 값을 포함하는 IDebugProperty2 개체입니다.
식 평가 중에 EE에는 기호 공급자 구성 요소의 정보가 필요합니다. 기호 공급자는 구문 분석된 식을 식별하고 이해하는 데 사용되는 기호 정보를 제공합니다.
비동기 식 평가가 완료되면 DE가 SDM(세션 디버그 관리자)을 통해 비동기 이벤트를 전송하여 식 평가가 완료되었음을 IDE에 알립니다. 그런 다음, 메서드 호출에서
IDebugExpression2::EvaluateSync평가 결과가 반환됩니다.
구현 참고 사항
Visual Studio 디버그 엔진은 CLR(공용 언어 런타임) 인터페이스를 사용하여 식 계산자와 통신해야 합니다. 따라서 Visual Studio 디버그 엔진에서 작동하는 식 계산기는 CLR을 지원해야 합니다(모든 CLR 디버깅 인터페이스의 전체 목록은 Windows SDK(소프트웨어 개발 키트)의 일부인 debugref.doc 찾을 수 있습니다).