适用范围:
Visual Studio
Visual Studio for Mac
Visual Studio Code
可使用 C++ 中的上下文运算符来限定断点位置、变量名称或表达式。 上下文运算符可用于指定来自外部范围的但被本地名称隐藏的名称。
有两种方法指定上下文:
{,,[
模块
] }
表达式
大括号必须包含两个逗号和模块(可执行文件或 DLL)名称或完整路径。
例如,在 EXAMPLE.dll 的
SomeFunction
函数处设置断点:
{,,EXAMPLE.dll}SomeFunction
模块!表达式
EXAMPLE.dll!SomeFunction
模块 是模块的名称。 您可以使用完整路径来消除同名模块之间的歧义。
如果 模块 路径包括逗号、嵌入空格或大括号,则必须在路径两边使用引号,以便上下文分析器能够正确识别该字符串。 单引号被视为 Windows 文件名的一部分,因此必须使用双引号。 例如,应用于对象的
{,,"a long, long, library name.dll"} g_Var
表达式 是解析为有效目标(如 模块中的函数名、变量名或指针地址)的任何有效的 C++ 表达式。
当表达式计算器遇到表达式中的符号时,它按下列顺序搜索该符号:
词汇作用域向外,从当前块(括在大括号中的一系列语句)开始,然后从该封闭块继续向外。 当前块是包含当前位置(指令指针地址)的代码。
函数作用域。 当前函数。
类作用域(如果当前位置在 C++ 成员函数内)。 类作用域包含所有基类。 表达式计算器使用常规域控制规则。
当前模块中的全局符号。
当前程序中的公共符号。