上下文运算符(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
当表达式计算器遇到表达式中的符号时,它按下列顺序搜索该符号:
词法范围向外,从当前块开始(括在大括号中的一系列语句),然后从该封闭块继续向外。当前块是包含当前位置(指令指针地址)的代码。
函数范围。当前函数。
类范围,如果当前位置在 C++ 成员函数内。类范围包含所有的基类。表达式计算器使用正常域控制规则。
当前模块。
全局符号。
其他模块。
程序中的公共符号。
使用上下文运算符,可以指定搜索的起始点并跳过当前位置。不能指定类,但是可以指定类的成员函数,并让表达式计算器向外搜索。