Какие специальные переменные доступны в окне просмотра 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