Поделиться через


Псевдопеременные

Псевдопеременные — термины, используемые для отображения определенных сведений в окне переменных или в диалоговом окне Быстрая проверка. Псевдопеременная вводится таким же способом, что и обычная переменная. Однако псевдопеременные не являются переменными и не соответствуют именам переменных в программе.

Пример

Предположим, что вы пишете приложение на исходном коде, и хотите просмотреть общее число дескрипторов в приложении. В окне Контрольные значения можно ввести следующую псевдопеременную в столбце Имя, затем нажать Ввод для вычисления:

$handles

В исходном коде можно использовать псевдопеременные, показанные в этой таблице:

Псевдопеременная

Функция

$err

Отображает последнее значение ошибки, заданное функцией SetLastError. Представляет значение, которое показывает, что будет возвращено функцией GetLastError.

Используйте $err,hr, чтобы посмотреть расшифрованную форму этого значения. Например, если последняя ошибка имела значение 3, $err,hr отобразит сообщение ERROR_PATH_NOT_FOUND : The system cannot find the path specified.

$handles

Показывает число дескрипторов в приложении.

$vframe

Выводит адрес текущего кадра стека.

$tid

Отображает идентификатор текущего потока.

$env

Отображает блок среды в средстве просмотра строк.

$cmdline

Отображает строковую переменную командной строки, которая запустила программу.

$pid

Отображает идентификатор процесса.

$имярегистра

или

@имярегистра

Отображает содержимое регистра имярегистра.

Как правило, можно отобразить содержимое регистра простым вводом имени регистра. Единственный момент, когда необходимо использовать такой синтаксис, это когда имя регистра перегружает имя переменной. Если имя регистра совпадает с именем переменной в текущей области, отладчик интерпретирует имя как имя переменной. В таком случае удобно использовать $имярегистра или @имярегистра.

$clk

Отображает время в циклах синхронизации.

$user

Отображает структуру с данными учетной записи для учетной записи, под которой выполняется приложение. По соображениям безопасности сведения о паролях не отображаются.

$exceptionstack

Отображает трассировку стека текущего исключения среды выполнения Windows. $ exceptionstack работает только в приложениях для Магазина Windows, выполняемых в Windows 8.1 или более поздней версии. $ exceptionstack не поддерживается для исключений C++ и SHE

$ReturnValue

Отображает возвращаемое значение метода .NET Framework. См. раздел Анализ значений, возвращаемых из вызовов методов.

В C# и Visual Basic можно использовать псевдопеременные, указанные в этой таблице:

Псевдопеременная

Функция

$exception

Отображает сведения о последнем исключении. Если исключения не было, вычисление $exception отображает сообщение об ошибке.

Только в Visual C# при отключенном помощнике по исключениям $exception автоматически добавляется в окно Локальные при возникновении исключения.

$user

Отображает структуру с данными учетной записи для учетной записи, под которой выполняется приложение. По соображениям безопасности сведения о паролях не отображаются.

В Visual Basic можно использовать псевдопеременные, указанные в этой таблице:

Псевдопеременная

Функция

$delete или $$delete

Удаляет неявную переменную, которая была создана в окне Интерпретация. Синтаксис: $delete, переменная или $delete, переменная.

$objectids или $listobjectids

Отображает все идентификаторы активных объектов в виде дочерних элементов указанного выражения. Синтаксис: $objectid, выражение или $listobjectids, выражение.

$N#

Отображает объект с идентификатором, равным N.

$dynamic

Отображает специальный узел динамического представления для объекта, который реализует IDynamicMetaObjectProvider. Интерфейс. Синтаксис: $dynamic, объект. Эта функция применима только к коду, который использует платформу .NET Framework 4. См. раздел Динамическое представление.

См. также

Задачи

Практическое руководство. Просмотр выражения в отладчике

Другие ресурсы

Окна переменных