Псевдопеременные
Псевдопеременные — термины, используемые для отображения определенных сведений в окне переменных или в диалоговом окне Быстрая проверка. Псевдопеременная вводится таким же способом, что и обычная переменная. Однако псевдопеременные не являются переменными и не соответствуют именам переменных в программе.
Пример
Предположим, что вы пишете приложение на исходном коде, и хотите просмотреть общее число дескрипторов в приложении. В окне Контрольные значения можно ввести следующую псевдопеременную в столбце Имя, затем нажать Ввод для вычисления:
$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. См. раздел Динамическое представление. |
См. также
Задачи
Практическое руководство. Просмотр выражения в отладчике