Оператор контекста в отладчике Visual Studio (C++)
Оператор контекста в C++ можно использовать для уточнения имени переменной, выражения или расположения точки останова. С помощью оператора контекста можно указать имя из внешней области, чтобы это имя не оказалось перекрыто локальным именем.
Синтаксис
Указать контекст можно двумя способами:
{,,[модуль] } выражение
Фигурные скобки должны содержать две запятые и имя либо полный путь к модулю (исполняемому файлу или DLL-файлу).
Например, чтобы задать точку останова
SomeFunction
в функцииEXAMPLE.dll
:{,,EXAMPLE.dll}SomeFunction
модуль!выражение
EXAMPLE.dll!SomeFunction
модуль — это имя модуля. В имени модуля можно указывать полный путь во избежание неоднозначности указания модулей с одинаковыми именами.
Если путь модуль содержит запятую, внутренний пробел или фигурную скобку, такой путь необходимо заключить в кавычки, чтобы средство синтаксического анализа контекста смогло правильно распознать строку. Одинарные кавычки воспринимаются как часть имени файла Windows, поэтому для этой цели должны использоваться двойные кавычки. Например,
{,,"a long, long, library name.dll"} g_Var
выражение — это любое допустимое выражение C++, результатом которого является допустимый целевой объект, например имя функции, имя переменной или адрес указателя в модуле.
Когда вычислитель выражений встречает в выражении символ, он ищет его в следующем порядке:
В лексической области и за ее пределами, начиная с текущего блока (последовательности операторов, заключенной в фигурные скобки) и затем переходя к внешнему блоку, содержащему текущий. Текущий блок — это код, содержащий текущее расположение, адрес указателя инструкции.
Область видимости функции. Текущая функция.
В области видимости класса, если текущее расположение находится внутри функции-члена языка C++. Область видимости класса включает все базовые классы. Вычислитель выражений использует обычные правила доминирования.
Глобальные символы в текущем модуле.
Открытые символы в текущей программе.