重要
在 Visual Studio 2015 中,这种实现表达式计算器的方法已弃用。 有关实现 CLR 表达式计算器的信息,请参阅 CLR 表达式计算器 和 托管表达式计算器示例。
执行始终发生在方法的上下文中,也称为包含的方法或当前方法。 执行暂停时,Visual Studio 调用调试引擎(DE)以获取局部变量和参数的列表,统称为该方法的局部变量。 Visual Studio 在 “局部 变量”窗口中显示这些局部变量及其值。
为了显示局部变量,DE 调用属于 EE 的 GetMethodProperty 方法,并为其提供评估上下文,即符号提供程序(SP)、当前执行地址和绑定器对象。 有关详细信息,请参阅 评估上下文。 如果调用成功,该方法 IDebugExpressionEvaluator::GetMethodProperty 将返回 一个 IDebugProperty2 对象,该对象表示包含当前执行地址的方法。
DE 调用 EnumChildren 以获取 IEnumDebugPropertyInfo2 对象,该对象经过筛选以仅返回局部变量并枚举以生成 DEBUG_PROPERTY_INFO 结构列表。 每个结构都包含局部变量的名称、类型和值。 类型和值存储为格式化字符串,适合显示。 名称、类型和值通常一起显示在 “局部变量 ”窗口的一行中。
注释
QuickWatch 和 Watch 窗口还显示具有相同格式的名称、值和类型的变量。 但是,这些值是通过调用 GetPropertyInfo 而不是 IDebugProperty2::EnumChildren获取的。
本部分内容
局部变量的示例实现 使用示例来逐步完成实现局部变量的过程。
相关内容
评估上下文 解释调试引擎(DE)调用表达式计算器(EE)时,它将传递三个参数。