Бөлісу құралы:


Псевдопеременные в отладчике Visual Studio

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

Example

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

$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 Отображает идентификатор процесса.
$ registername

или

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

Как правило, можно отобразить содержимое регистрации, просто введя имя регистра. Единственный раз, когда имя регистра перегружает имя переменной, необходимо использовать этот синтаксис. Если имя регистра совпадает с именем переменной в текущей области, отладчик интерпретирует имя как имя переменной. Вот когда $имя регистрации или @имя регистрации оказывается полезным.
$clk Отображает время в циклах часов.
$user Отображает структуру с сведениями об учетной записи, работающей в приложении. По соображениям безопасности сведения о пароле не отображаются.
$exceptionstack Отображает трассировку стека текущего исключения среды выполнения Windows. $ exceptionstack работает только в приложениях UWP. $ exceptionstack не поддерживается для исключений C++ и SEH
$returnvalue Отображает возвращаемое значение метода.

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

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

Если помощник по исключению отключен, $exception автоматически добавляется в окно "Локальные" при возникновении исключения.
$user Отображает структуру с сведениями об учетной записи, работающей в приложении. По соображениям безопасности сведения о пароле не отображаются.
$returnvalue Отображает возвращаемое значение метода .NET.
$threadSmallObjectHeapBytes Отображает общее количество байтов, выделенных в куче малых объектов текущим потоком. (.NET 6+)
$threadUserOldHeapBytes Отображает общее количество байтов, выделенных в пользовательской старой куче текущим потоком. User Old Heap = Large Object Heap + Pinned Object Heap (.NET 6+)

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

Псевдопеременная Функция
$exception Отображает сведения о последнем исключении. Если исключение не произошло, при оценке $exception отображается сообщение об ошибке.
$delete или $$delete Удаляет неявную переменную, созданную в окне «Немедленно». Синтаксис — $delete,переменная или$delete,переменная.
$objectids или $listobjectids Отображает все идентификаторы активных объектов как дочерние элементы указанного выражения. Синтаксис — $objectid,выражение или$listobjectids,выражение.
$ N# Отображает объект с идентификатором объекта, равным N.
$dynamic Отображает специальный узел Dynamic View для объекта, реализующего IDynamicMetaObjectProvider. Интерфейс. Синтаксис — $dynamic,объект. Эта функция применяется только к коду, используюму .NET Framework версии 4 или более поздней.