键表达式计算器接口
重要
在 Visual Studio 2015 中,这种实现表达式计算器的方法已弃用。 有关实现 CLR 表达式计算器的信息,请参阅 CLR 表达式计算器和托管表达式计算器示例。
编写表达式计算器 (EE) 和计算上下文时,应熟悉以下接口。
接口说明
-
具有单个方法 GetAddress,用于获取表示当前执行点的数据结构。 此数据结构是调试引擎 (DE) 传递给 EvaluateSync 方法以计算表达式的三个参数之一。 该接口通常由符号提供程序实现。
-
具有 Bind 方法,该方法用于获取包含符号当前值的内存区域。 如果包含方法(由 IDebugObject 对象表示)和符号本身(由 IDebugField 对象表示),则
IDebugBinder::Bind
返回符号的值。IDebugBinder
通常由 DE 实现。 -
代表简单的数据类型。 对于更复杂的类型,如数组和方法,请分别使用派生的 IDebugArrayField 和 IDebugMethodField 接口。 IDebugContainerField 是另一个重要的派生接口,表示包含其他符号(如方法或类)的符号。 接口
IDebugField
(及其派生体)通常由符号提供程序实现。IDebugField
对象可用于查找符号的名称和类型,并与 IDebugBinder 对象一起用于查找其值。 -
代表符号运行时值的实际位。 Bind 获取表示符号的 IDebugField 对象,并返回 IDebugObject 对象。 GetValue 方法返回内存缓冲区中符号的值。 DE 通常实现此接口,以表示内存中的属性值。
-
该接口代表表达式计算器本身。 密钥方法是 Parse,它会返回 IDebugParsedExpression 接口。
-
该接口表示已解析的表达式,可随时进行求值。 关键方法是 EvaluateSync,它返回一个 IDebugProperty2,代表表达式的值和类型。
-
该接口表示值及其类型,是表达式计算的结果。