Какие специальные переменные доступны в окне просмотра Visual Studio в .NET?
Я только что узнал о $exception в окне просмотра VS.NET для .NET вчера. Это показывает текущее исключение, которое было выбрано, и это большая экономия времени, когда вам не нужно находить значок значка восклицательного знака и нависнуть над ним.
Какие еще специальные переменные существуют в окне просмотра?
(Примечание: этот вопрос касается .NET, а не С++.)
Ответы
Ответ 1
Поддерживается Pseudovariables в отладке Visual Studio для .NET:
- $exception: отображает информацию о последнем исключении. Если исключение не было, оценка
$exception
отображает сообщение об ошибке. Только в Visual С#, когда Ассистент исключений отключен, $exception
автоматически добавляется в окно Локалы при возникновении исключения.
- $user. Отображает структуру с информацией об учетной записи для учетной записи, запускающей приложение. Из соображений безопасности информация о пароле не отображается.
Следующие действия применимы только к Visual Basic:
- $delete или $$ delete: удаляет неявную переменную, созданную в окне Немедленное. Синтаксис - это переменная
$delete,
или переменная $$delete,
.
- $objectids или $listobjectids. Отображает все активные идентификаторы объектов как дочерние элементы указанного выражения. Синтаксис - выражение
$objectid,
или выражение $listobjectids,
.
- $N #: отображает объект с идентификатором объекта, равным N.
- $dynamic. Отображает специальный Динамический просмотр node для объекта, который реализует
IDynamicMetaObjectProvider
. Интерфейс. Синтаксис - это объект $dynamic,
. Эта функция применяется только к коду, использующему .NET Framework версии 4. См. Динамический просмотр.
Ответ 2
Если вы щелкните правой кнопкой мыши любую переменную в окне "Часы", вы можете создать идентификатор объекта. Это даст вам число, например. первый идентификатор объекта будет 1 #.
Идентификатор объекта представляет собой конкретный экземпляр. Затем экземпляр можно наблюдать в окне "Часы", как обычную переменную, но вы можете продолжать наблюдать за экземпляром, даже если локальная ссылка выходит за рамки. Когда он в конечном итоге получит сбор мусора, вы потеряете доступ к нему.
Ответ 3
Использование "@err" отображает значение GetLastError(), а "@err, hr" отображает сообщение об ошибке.
Ответ 4
Псевдо-переменная $user является единственной другой документированной. В VS2010 отладчик VB.NET приобретает несколько новых.
Ответ 5
@ERR
; Последнее значение ошибки, то же значение, возвращаемое функцией API GetLastError()
@TIB
Блок информации о потоке для текущего потока
@CLK
; Недокументированный регистр часов; можно использовать только в окне просмотра
@EAX, @EBX, @ECX, @EDX, @ESI, @EDI, @EIP, @ESP, @EBP, @EFL
, Регистры процессора Intel
@CS, @DS, @ES, @SS, @FS, @GS
, Регистры сегмента процессора Intel
@ST0, @ST1, @ST2, @ST3, @ST4, @ST5, @ST6, @ST7
, Регистры с плавающей запятой Intel CPU