EE(식 계산기)는 런타임에 변수와 식을 구문 분석하고 평가하기 위해 언어 구문을 검사하여 IDE가 중단 모드에 있을 때 사용자가 변수와 식을 볼 수 있도록 합니다.
식 계산기 사용
식은 다음과 같이 ParseText 메서드를 사용하여 만들어집니다.
DE(디버그 엔진)는 IDebugExpressionContext2 인터페이스를 구현합니다.
디버그 패키지는 IDebugStackFrame2 인터페이스에서
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에서 찾을 수 있음).