上下文运算符(C/C++ 语言表达式)

更新:2007 年 11 月

本主题适用于:

版本

Visual Basic

C#

C++

Web Developer

速成版

主题不适用 主题不适用

仅限本机

主题不适用

标准版

主题不适用 主题不适用

仅限本机

主题不适用

专业团队版

主题不适用 主题不适用

仅限本机

主题不适用

表格图例:

主题适用

适用

主题不适用

不适用

主题适用,但命令默认情况下隐藏

默认情况下隐藏的一条或多条命令。

上下文运算符是由本机调试器提供的附加运算符。调试本机代码时,可使用上下文运算符限定断点位置、变量名称或表达式:

  • {[函数],[源],[模块] } location

  • {[函数],[源],[模块] } variable_name

  • {[函数],[源],[模块] } 表达式

大括号可以包含函数名、源文件路径和模块(可执行文件或 DLL)路径的任意组合。上下文运算符对于某些目的很有用,如指定来自外部范围的、但被本地名称隐藏的名称。

示例

在 EXAMPLE.CPP 的 301 行设置断点:

{,EXAMPLE.CPP,}@301

如果省略 函数 或 模块,则不能省略两个逗号。因此,下面的语法无效:

{File.c, File.exe} @143 // Invalid syntax

但是,如果将 源 和 模块 都省略掉,则可以省略逗号。下面的语法有效:

{Fun} @143

如果 源 或 模块 路径包括逗号、嵌入空格或大括号,则必须在路径两边使用引号,以便上下文分析器能够正确识别该字符串。单引号被视为 Windows 文件名的一部分,因此必须使用双引号。例如,

{,"a long, long, name.c", } .143

当表达式计算器遇到表达式中的符号时,它按下列顺序搜索该符号:

  1. 词法范围向外,从当前块开始(括在大括号中的一系列语句),然后从该封闭块继续向外。当前块是包含当前位置(指令指针地址)的代码。

  2. 函数范围。当前函数。

  3. 类范围,如果当前位置在 C++ 成员函数内。类范围包含所有的基类。表达式计算器使用正常域控制规则。

  4. 当前模块。

  5. 全局符号。

  6. 其他模块。

  7. 程序中的公共符号。

使用上下文运算符,可以指定搜索的起始点并跳过当前位置。不能指定类,但是可以指定类的成员函数,并让表达式计算器向外搜索。

请参见

其他资源

本机 C++ 中的表达式