Перейти к содержимому

Как посмотреть значение переменной в visual studio

  • автор:

Просмотр значений данных в подсказках по данным в редакторе кода

Область применения:yesVisual Studio Visual Studio для Mac noVisual Studio Code no

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

Работа с подсказками по данным

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

Отображение подсказки по данным

  1. Установите точку останова в коде и начните отладку, нажав клавишу F5 или выбрав команду Отладка>Начать отладку.
  2. При приостановке в точке останова наведите указатель мыши на любую переменную в текущей области. Появится подсказка по данным с именем и текущим значением переменной.

Как сделать подсказку по данным прозрачной

Чтобы сделать подсказку по данным прозрачной для просмотра находящегося за ней кода, нажмите клавишу CTRL, когда подсказка отображается. Подсказка будет прозрачной, пока удерживается клавиша CTRL. Для закрепленных или плавающих подсказок этот метод не работает.

Развернутая подсказка по данным

Начиная с Visual Studio 2022 с обновлением 1 появилась возможность сохранять подсказку по данным развернутой, пока вы не щелкнете в другом месте. Это называется закрепленной подсказкой по данным. Чтобы включить эту функцию, выберите Инструменты>Параметры>Отладка, а затем на вкладке Общие выберите Сохранять развернутые подсказки по данным до щелчка в другим месте.

Закрепление подсказок по данным

Для закрепления подсказки по данным, чтобы она оставалась открытой, щелкните значок кнопки Прикрепить к источнику.

Pin a data tip

Закрепленную подсказку можно перемещать, перетаскивая ее в окне кода. Значок кнопки отображается во внутреннем поле рядом со строкой, к которой прикреплена подсказка.

Подсказки по данным всегда определяются в контексте того места, где приостановлено выполнение, а не в контексте текущего местоположения курсора или местоположения подсказки. Если в другой функции навести указатель на переменную, имеющую такое же имя, что и переменная в текущем контексте, отобразится значение переменной в текущем контексте.

Открепление подсказки по данным от источника

Чтобы сделать закрепленную подсказку по данным плавающей, наведите на нее указатель мыши и выберите значок кнопки в контекстном меню.

Значок кнопки примет открепленную форму, и подсказка станет плавающей, или вы сможете перетаскивать ее по всем открытым окнам. Плавающие подсказки по данным закрываются при завершении сеанса отладки.

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

Чтобы повторно закрепить плавающую подсказку по данным, наведите на нее указатель мыши в редакторе кода и щелкните значок кнопки. Значок кнопки примет прикрепленную форму, и подсказка снова станет закрепленной в этом окне кода.

Если плавающая подсказка находится не в окне исходного кода, значок кнопки недоступен, и подсказку нельзя закрепить повторно. Чтобы значок кнопки стал доступен, верните подсказку в окно редактора кода, перетащив ее или переместив фокус в окно кода.

Закрытие подсказки по данным

Чтобы закрыть подсказку по данным, наведите на нее указатель мыши и выберите значок закрытия (x) в контекстном меню.

Закрытие всех подсказок по данным

Чтобы закрыть все подсказки по данным, в меню Отладка выберите команду Очистить все подсказки по данным.

Закрытие всех подсказок по данным для определенного файла

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

Развертывание и изменение сведений

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

Развертывание переменной

Чтобы развернуть объект в подсказке по данным для просмотра его элементов, наведите указатель мыши на стрелки развертывания перед именами элементов. Элементы отобразятся в виде дерева. Для закрепленной подсказки по данным нажмите + перед именем переменной, а затем разверните дерево.

Expand a data tip

Для перемещения вверх и вниз по развернутому представлению можно использовать мышь или клавиши со стрелками.

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

Изменение значения переменной

Чтобы изменить значение переменной или элемента в подсказке по данным, выберите значение, введите новое значение и нажмите клавишу ВВОД. Значения, предназначенные только для чтения, недоступны для выбора.

Закрепление свойств в подсказках по данным

Эта возможность поддерживается для .NET Core 3.0 или более поздних версий.

С помощью средства Закрепляемые свойства можно быстро проверять объекты по их свойствам в подсказках по данным. Чтобы воспользоваться этим средством, наведите указатель мыши на свойство и выберите значок булавки либо щелкните правой кнопкой мыши и в контекстном меню выберите пункт Закрепить элемент в избранном. При этом это свойство всплывает в верхней части списка свойств объекта, а имя и значение свойства отображаются в правом столбце подсказки по данным. Чтобы открепить свойство, щелкните значок булавки еще раз или в контекстном меню выберите пункт Открепить элемент в избранном.

При просмотре списка свойств объекта в подсказке по данным можно также включать и отключать отображение имен свойств и отфильтровывать незакрепленные свойства. Чтобы получить доступ к любой из этих команд, щелкните правой кнопкой мыши строку со свойством и выберите в контекстном меню команду Показать только закрепленные элементы или Скрыть имена закрепленных элементов в значениях.

Визуализация сложных типов данных

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

Visualizer icon

Чтобы просмотреть элемент с помощью визуализатора по умолчанию для типа данных, выберите значок с увеличением стекла. Щелкните стрелку рядом со значком лупы, чтобы выбрать вариант из списка визуализаторов для типа данных.

Добавление переменной в окно контрольных значений

Если вы хотите продолжить наблюдение за переменной, то можете добавить ее в окно контрольных значений из подсказки по данным. Щелкните правой кнопкой мыши переменную в подсказке по данным и выберите пункт Добавить контрольное значение.

Переменная появится в окне Контрольные значения. Если в используемом выпуске Visual Studio поддерживается несколько окон Контрольные значения, переменная появится в окне Контрольные значения 1.

Импорт и экспорт подсказок по данным

Подсказки по данным можно экспортировать в XML-файл. Затем этот файл можно использовать совместно или изменять в текстовом редакторе. Вы также можете импортировать XML-файл подсказок по данным, который получили или изменили.

Экспорт подсказок по данным

  1. Выберите команду Отладка>Экспорт подсказок по данным.
  2. В диалоговом окне Экспорт подсказок по данным перейдите к месту, где нужно сохранить XML-файл, введите им файла и нажмите кнопку Сохранить.

Импорт подсказок по данным

  1. Выберите команду Отладка>Импорт подсказок по данным.
  2. В диалоговом окне Импорт подсказок по данным выберите XML-файл подсказок, который хотите, и нажмите Открыть.

См. также

  • Что такое отладка?
  • Методы и инструменты отладки
  • Первое знакомство с отладкой
  • Просмотр данных в отладчике
  • Окна «Контрольные значения» и «Быстрая проверка»
  • Создание пользовательских визуализаторов для объектов .NET

Как увидеть значения переменных при отладке?

Одной из основных задач, которые необходимо выполнить при использовании отладчика, является определение значения различных переменных. В Visual Studio есть различные окна, которые могут отображать эту информацию, и позволяют разобраться с конкретными, которые вы ищете. Лесли Ричардсон (@lyrichardson01), PM в команде Visual Studio, покажет нам некоторые из ее любимых способов навигации по переменным в отладчике.

Знаете ли вы. Вы можете узнать все о отладчике на Документация Майкрософт!

Одной из основных задач, которые необходимо выполнить при использовании отладчика, является определение значения различных переменных. В Visual Studio есть различные окна, которые могут отображать эту информацию, и позволяют разобраться с конкретными, которые вы ищете. Лесли Ричардсон (@lyrichardson01), PM в команде Visual Studio, покажет нам некоторые из ее любимых способов навигации по переменным в отладчике.

Знаете ли вы. Вы можете узнать все о отладчике на Документация Майкрософт!

Проверка переменных в окнах «Видимые» и «Локальные» в Visual Studio

Область применения:yesVisual Studio Visual Studio для Mac noVisual Studio Code no

В окнах Видимые и Локальные отображаются значения переменных во время отладки. Окна доступны только во время сеанса отладки. В окне «Автозапуск» отображаются переменные, используемые вокруг текущей инструкции, в которой отладчик приостановлен. В окне Локальные отображаются переменные, определенные в локальной области, которая обычно является текущей функцией или методом.

Если вы не знакомы с процессом отладки кода, перед выполнением задач в этой статье рекомендуется прочесть документ об отладке для начинающих и статью Методы и инструменты отладки.

Окно Видимые доступно для кода на C#, Visual Basic, C++ и Python, но не для кода на JavaScript или F#.

Чтобы открыть окно Видимые, во время отладки последовательно выберите пункты Отладка>Окна>Видимые или нажмите сочетание клавиш CTRL+ALT+V>A.

Чтобы открыть окно Локальные, во время отладки последовательно выберите пункты Отладка>Окна>Локальные или нажмите сочетание клавиш ALT+4.

Этот раздел относится к Visual Studio в Windows. Информацию о Visual Studio для Mac см. в статье Визуализации данных в Visual Studio для Mac.

Использование окон «Видимые» и «Локальные»

Массивы и объекты отображаются в окнах Видимые и Локальные как элементы управления в виде дерева. Щелкните стрелку слева от имени переменной, чтобы развернуть представление и увидеть поля и свойства. Далее приведен пример объекта System.IO.FileStream в окне Локальные.

Screenshot of the Locals window, with file set to a System.IO.FileStream value.

Screenshot of the Locals window, with file set to a System.IO.FileStream value.

Значение красного цвета в окне Локальные или Видимые означает, что значение изменилось с момента последнего вычисления. Изменение могло произойти во время предыдущего сеанса отладки или быть выполнено в окне.

По умолчанию в окнах отладчика используется десятичный числовой формат. Чтобы изменить его на шестнадцатеричный, щелкните правой кнопкой мыши в окне Локальные или Видимые и выберите пункт Шестнадцатеричный вывод. Это изменение распространяется на все окна отладчика.

Изменение значений переменных в окне «Видимые» и «Локальные»

Чтобы изменить значения большинства переменных в окнах Видимые или Локальные, дважды щелкните текущее значение и введите новое.

В качестве значения можно ввести выражение, например a + b . Отладчик принимает большинство допустимых выражений языка.

При работе с машинным кодом C++ может потребоваться определить контекст имени переменной. Дополнительные сведения см. в разделе Оператор контекста (C++).

Перед изменением значений и выражений нужно оценить его возможные последствия. Возможны следующие проблемы.

  • Вычисление некоторых выражений может привести к изменению значения некоторой переменной или иным образом повлиять на состояние программы. Например, вычисление var1 = ++var2 изменяет значения var1 и var2 . Такие выражения называют выражениями с побочными эффектами. Если вы не осведомлены о побочных эффектах, они могут привести к непредвиденным результатам.
  • Изменение значений с плавающей запятой может привести к незначительной погрешности, связанной с преобразованием дробных компонентов из десятичной формы в двоичную. Даже внешне кажущееся безвредным редактирование может привести к изменениям некоторых младших разрядов переменной с плавающей запятой.

Поиск в окне «Видимые» или «Локальные»

Используя панель поиска над каждым окном, можно искать ключевые слова в столбцах «Имя», «Значение» и «Тип» в окнах Видимые или Локальные. Нажмите клавишу ВВОД или щелкните одну из стрелок, чтобы выполнить поиск. Чтобы отменить текущий поиск, нажмите значок «x» на панели поиска.

Для перехода между найденными совпадениями используйте стрелки влево и вправо (SHIFT + F3 и F3 соответственно).

Screenshot of Search in Locals Window

Screenshot of Search in Locals Window

Чтобы сделать поиск более или менее детальным, воспользуйтесь раскрывающимся списком Поиск на уровень глубже в верхней части окна Видимые или Локальные, чтобы выбрать число уровней детализации поиска во вложенных объектах.

Закрепление свойств в окне «Видимые» или «Локальные»

Эта возможность поддерживается для .NET Core 3.0 или более поздних версий.

С помощью средства Закрепляемые свойства можно быстро проверить объекты на основе их свойств в окнах «Видимые» и «Локальные». Чтобы воспользоваться этим средством, наведите указатель мыши на свойство и выберите значок булавки либо щелкните правой кнопкой мыши и в контекстном меню выберите пункт Закрепить элемент в избранном. Свойство будет размещено в верхней части списка свойств объекта, а имя и значение свойства будут отображаться в столбце Значение. Чтобы открепить свойство, щелкните значок булавки еще раз или в контекстном меню выберите пункт Открепить элемент в избранном.

При просмотре списка свойств объекта в окнах «Видимые» или «Локальные» можно также включать и отключать отображение имен свойств и отфильтровывать незакрепленные свойства. Доступ к каждому параметру можно получить, нажимая кнопки на панели инструментов над окнами «Видимые» или «Локальные».

Screenshot of Filter favorite properties.

Изменение контекста для окна «Видимые» или «Локальные»

С помощью панели инструментов Место отладки можно выбирать нужную функцию, поток или процесс, что приводит к изменению контекста для окон Видимые и Локальные.

Чтобы включить панель инструментов Место отладки, щелкните в пустой части области панели инструментов и в раскрывающемся списке выберите Место отладки или последовательно выберите пункты Вид>Панели инструментов>Место отладки.

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

Screenshot of Debug Location toolbar.

Screenshot of Debug Location toolbar.

Переменные в окне автозапуска (C#, C++, Visual Basic, Python)

При работе с разными языками в окне Видимые отображаются разные переменные.

    При использовании C# или Visual Basic в окне Видимые отображаются все переменные, используемые в текущей или предыдущей строках. Например, в коде C# или Visual Basic объявите следующие четыре переменные.

 public static void Main()

Задайте точку останова в строке c = 3; и запустите отладчик. Когда выполнение приостановится, в окне Видимые будет отображено следующее.

Screenshot of the Autos window, with the value of c set to 0.

Screenshot of the Autos window, with the value of c set to 0.

 void main()

Задайте точку останова в строке e = 5; и запустите отладчик. Когда выполнение остановится, в окне Видимые будет отображено следующее.

Screenshot of the Autos window, with the line highlighted that shows the int c with a value of 3.

Screenshot of the Autos window, with the line highlighted that shows the int c with a value of 3.

View return values of method calls

В коде .NET и C++ можно просматривать возвращаемые значения в окне Видимые при выполнении шага с обходом вызова метода или выходом из него. Просмотр возвращаемых значений вызова метода может быть полезен, если они не хранятся в локальных переменных. Метод можно использовать в качестве параметра или возвращаемого значения другого метода.

Например, следующий код C# добавляет возвращаемые значения двух функций.

static void Main(string[] args) < int a, b, c, d; a = 1; b = 2; c = 3; d = 4; int x = sumVars(a, b) + subtractVars(c, d); >private static int sumVars(int i, int j) < return i + j; >private static int subtractVars(int i, int j)

Чтобы просмотреть возвращаемые значения вызовов методов sumVars() и subtractVars() в окне «Видимые», выполните следующие действия.

  1. Установите точку останова на строке int x = sumVars(a, b) + subtractVars(c, d); .
  2. Начните отладку и, когда выполнение приостановится в точке останова, выберите Шаг с обходом или нажмите клавишу F10. Вы увидите следующие возвращаемые значения в окне Видимые.

Screenshot of Autos return value C#.

Screenshot of Autos return value C#.

См. также

  • Что такое отладка?
  • Методы и инструменты отладки
  • Первое знакомство с отладкой
  • Окна отладчика

Просмотр переменных с помощью окна контрольных значений и быстрой проверки

Область применения:yesVisual Studio Visual Studio для Mac noVisual Studio Code no

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

В окнах контрольных значений в процессе отладки могут отображаться несколько переменных. В диалоговом окне Быстрая проверка отображается одна переменная за раз. Его следует закрыть до того, как можно будет продолжить отладку. Дополнительные сведения об использовании окна «Быстрая проверка» см. в разделе Наблюдение за одной переменной или выражением с помощью быстрой проверки.

Если вы не знакомы с процессом отладки кода, перед выполнением задач в этой статье рекомендуется прочесть документ об отладке для начинающих и статью Методы и инструменты отладки.

Наблюдение за переменными с помощью окна контрольных значений

Можно открыть несколько окон контрольных значений и наблюдать за несколькими переменными в окне контрольных значений.

Например, чтобы организовать просмотр значений a , b и c , в следующем коде:

int main() < int a, b, c; a = 1; b = 2; c = 0; for (int i = 0; i < 10; i++) < a++; b *= 2; c = a + b; >return 0; > 
  1. Установите точку останова на строке c = a + b; , щелкнув в левое поле, выбрав Отладка>Переключить точку останова или нажав клавишу F9.
  2. Начните отладку, выбрав зеленую стрелку Старт или выбрав Отладка>Начать отладку или нажав клавишу F5. Выполнение останавливается в точке останова.
  3. Откройте окно Контрольные значения, выбрав Отладка>Окна>Контрольные значения>Контрольные значения 1 или нажав клавиши CTRL+ALT+W>1. Вы можете открыть дополнительные окна контрольных значений, выбрав окна 2, 3 или 4.
  4. В окне Контрольные значения выберите пустую строку и тип переменной a . Сделайте то же самое для b и c .

Screenshot of Watch variables.

Screenshot of Watch variables.

  • Может потребоваться уточнить контекст имени переменной или выражение, использующее имя переменной. Контекст — это функция, файл исходного кода или модуль, где находится переменная. Если необходимо уточнить контекст, используйте синтаксис оператора контекста (C++) в поле Имя в окне Контрольные значения.
  • Вы можете добавить имена регистров и имена переменных используя $ или @ в поле Имя в окне контрольных значений. Для получения дополнительной информации см. Pseudovariables.

Использование выражений в окне контрольных значений

В окне Контрольные значения можно просмотреть любое допустимое выражение, которое распознает отладчик.

Например, для кода, приведенного в предыдущем разделе, можно вычислить среднее трех значений, введя (a + b + c) / 3 в окне контрольных значений:

Screenshot of Watch expression.

Screenshot of Watch expression.

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

Screenshot of Watch expression error.

Screenshot of Watch expression error.

В окне Контрольные значения может появиться значок кружки с двумя волнистыми линиями. Он указывает на то, что отладчик не вычисляет выражение из-за возможной зависимости между потоками. Для оценки кода необходимо, чтобы другие потоки в приложении выполнялись временно, но, поскольку вы находитесь в режиме приостановки выполнения, все потоки в приложении обычно останавливаются. Разрешение временного запуска других потоков может привести к непредвиденным результатам в работе приложения, а также к тому, что отладчик будет игнорировать различные события, например точки останова и исключения, созданные в этих потоках.

Поиск в окне контрольных значений

Используя панель поиска над каждым окном, можно искать ключевые слова в столбцах «Имя», «Значение» и «Тип» в окне Контрольные значения. Нажмите клавишу ВВОД или щелкните одну из стрелок, чтобы выполнить поиск. Чтобы отменить текущий поиск, нажмите значок «x» на панели поиска.

Для перехода между найденными совпадениями используйте стрелки влево и вправо (SHIFT + F3 и F3 соответственно).

Screenshot of Search in Watch Window.

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

Закрепление свойств в окне контрольных значений

Эта возможность поддерживается в .NET Core 3.0 или более поздних версий.

С помощью средства Закрепляемые свойства можно быстро проверить объекты на основе их свойств в окне контрольных значений. Чтобы воспользоваться этим средством, наведите указатель мыши на свойство и выберите значок булавки либо щелкните правой кнопкой мыши и в контекстном меню выберите пункт Закрепить элемент в избранном. Свойство будет размещено в верхней части списка свойств объекта, а имя и значение свойства будут отображаться в столбце Значение. Чтобы открепить свойство, щелкните значок булавки еще раз или в контекстном меню выберите пункт Открепить элемент в избранном.

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

Обновление значений часов

При вычислении выражения в окне Контрольные значения может отображаться значок обновления (круговая стрелка). Значок обновления указывает на ошибочные или устаревшие значения.

Чтобы обновить значение, щелкните значок обновления или нажмите клавишу ПРОБЕЛ. Отладчик попытается пересчитать выражение. Однако вы, возможно, не захотите или не сможете повторно вычислить выражение, в зависимости от того, почему значение не было вычислено.

Наведите указатель мыши на значок обновления или обратитесь к столбцу Значение, чтобы узнать причину, по которой выражение не было вычислено. Некоторые из причин:

  • При вычислении выражения возникла ошибка, как в предыдущем примере. Возможно, истекло время ожидания или переменная находится вне области действия.
  • Выражение содержит вызов функции, который мог вызвать побочный эффект в приложении. См. раздел Побочные эффекты.
  • Автоматическое вычисление свойств и неявные вызовы функций должны быть отключены.

Если значок обновления отображается ввиду того, что автоматическое вычисление свойств и неявные вызовы функций отключены, его можно включить, установив флажок Включить вычисление свойств и другие неявные вызовы функций в разделе Сервис>Параметры>Отладка>Общие.

Демонстрация использования значка обновления

  1. В разделе Сервис>Параметры>Отладка>Общие снимите флажок Включить вычисление свойств и другие неявные вызовы функций.
  2. Введите следующий код и в окне Контрольные значения задайте контрольное значение свойства list.Count .

static void Main(string[] args) < Listlist = new List(); list.Add("hello"); list.Add("goodbye"); > 

Screenshot of Refresh Watch.

Screenshot of Refresh Watch.

Побочные эффекты выражения

Вычисление некоторых выражений может привести к изменению значения некоторой переменной или иным образом повлиять на состояние приложения. Например, вычисление следующего выражения изменяет значение var1 :

var1 = var2 

Этот код может вызвать побочный эффект. Побочные эффекты могут усложнить отладку из-за изменения способа работы приложения.

Выражение, у которого есть побочные эффекты, вычисляется только один раз при первом его вводе. После этого выражение отображается в окне Контрольные значения серым цветом, а дальнейшие вычисления отключаются. В столбце подсказки или Значение объясняется, что выражение вызывает побочный эффект. Можно принудительно выполнить повторное вычисление, щелкнув значок обновления рядом с этим значением.

Один из способов предотвратить побочные эффекты — отключить автоматическое вычисление функций. В разделе Сервис>Параметры>Отладка>Общие снимите флажок Включить вычисление свойств и другие неявные вызовы функций.

Только для C#: если вычисление свойств и неявных вызовов функций отключено, можно принудительно вычислить выражение, добавив модификатор формата ac к переменной Имя в окне Контрольные значения. См. раздел Определители формата C#.

Использование идентификаторов объектов в окне контрольных значений (C# и Visual Basic)

Иногда возникает необходимость наблюдать за поведением определенного объекта. Например, может потребоваться отслеживать объект, на который ссылается локальная переменная, после того как эта переменная вышла из области действия. В C# и Visual Basic можно создавать идентификаторы объектов для определенных экземпляров ссылочных типов и использовать их в окне Контрольные значения и условиях точек останова. Идентификатор объекта создается службами отладки среды CLR и связан с объектом.

Идентификаторы объектов создают слабые ссылки, которые не предотвращают сборку мусора для объекта. Они действительны только в рамках текущего сеанса отладки.

В следующем коде метод MakePerson() создает Person с помощью локальной переменной:

class Person < public Person(string name) < Name = name; >public string Name < get; set; >> public class Program < static List_people = new List(); public static void Main(string[] args) < MakePerson(); DoSomething(); >private static void MakePerson() < var p = new Person("Bob"); _people.Add(p); >private static void DoSomething() < // more processing Console.WriteLine("done"); >> 

Чтобы узнать имя Person в методе DoSomething() , можно добавить ссылку на идентификатор объекта Person в окне Контрольные значения.

  1. Установите точку останова в коде после создания объекта Person .
  2. Запустите отладку.
  3. Когда выполнение приостанавливается на точке останова, откройте окно Локальные, выбрав Отладка>Окна>Локальные.
  4. В окне Локальные щелкните переменную Person правой кнопкой мыши и выберите пункт Создать идентификатор объекта. В окне Локальные вы должны увидеть знак доллара ($) плюс число, которое является идентификатором объекта.
  5. Добавьте идентификатор объекта в окно Контрольные значения, щелкнув правой кнопкой мыши идентификатор объекта и выбрав пункт Добавить контрольное значение.
  6. Задайте другую точку останова в методе DoSomething() .
  7. Продолжайте отладку. Когда выполнение остановится в методе DoSomething() , в окне Контрольные значения отобразится объект Person .

Примечание. Чтобы просмотреть свойства объекта, например Person.Name , необходимо включить вычисление свойств, выбрав Сервис>Параметры>Отладка>Общие>Включить вычисление свойств и другие неявные вызовы функций.

Динамическое представление и окно «Контрольные значения»

Некоторые языки сценариев (например, JavaScript или Python) используют динамическую или неявную типизацию, а в .NET версии 4.0 и более поздней поддерживаются объекты, которые трудно наблюдать в обычных окнах отладки.

В окне Контрольные значения эти объекты отображаются как динамические объекты, которые создаются из типов, реализующих интерфейс IDynamicMetaObjectProvider. В узле динамического объекта показаны динамические члены динамического объекта, но не разрешено изменять их значения.

Чтобы обновить значения в динамическом представлении, щелкните значок обновления рядом с узлом динамического объекта.

Чтобы отобразить только динамическое представление для объекта, добавьте описатель динамического формата после имени динамического объекта в окне Контрольные значения.

  • Для C#: ObjectName, dynamic
  • Для Visual Basic: $dynamic, ObjectName
  • Отладчик C# автоматически не пересчитывает значения, отображаемые в динамическом представлении при переходе на новую строку кода.
  • В Visual Basic отладчик автоматически обновляет выражения, добавляемые с помощью динамического представления.
  • Вычисление членов динамического представления может иметь побочные эффекты.

Вставка новой переменной контрольного значения, которая приводит объект к динамическому объекту

  1. Щелкните правой кнопкой мыши любой дочерний элемент динамического представления.
  2. Выберите Добавить контрольное значение. object.name становится ((dynamic) object).name и появляется в новом окне Контрольные значения.

Отладчик также добавляет дочерний узел динамического представления объекта в окно Видимые. Чтобы открыть окно Видимые, во время отладки последовательно выберите пункты Отладка>Окна>Видимые.

Динамическое представление также улучшает процесс отладки для COM-объектов. Когда отладчик встречает COM-объект, инкапсулированный в System.__ComObject, он добавляет узел Динамическое представление для объекта.

Наблюдение за одной переменной или выражением с помощью быстрой проверки

Окно Быстрая проверка можно использовать для наблюдения за одной переменной.

Например, для следующего кода:

static void Main(string[] args) < int a, b; a = 1; b = 2; for (int i = 0; i < 10; i++) < a = a + b; >> 

Чтобы просмотреть переменную a , выполните следующие действия:

  1. Установите точку останова на строке a = a + b; .
  2. Запустите отладку. Выполнение останавливается в точке останова.
  3. Выберите переменную a в коде.
  4. Выберите Отладка>Быстрая проверка, нажмите клавиши SHIFT+F9 или щелкните правой кнопкой мыши и выберите в контекстном меню команду Быстрая проверка. Появится диалоговое окно Быстрая проверка. Переменная a находится в поле Выражение со значением1.

Screenshot of QuickWatch variable.

Screenshot of QuickWatch variable.

Screenshot of QuickWatch expression.

Screenshot of QuickWatch expression.

Связанный контент

  • Что такое отладка?
  • Методы и инструменты отладки
  • Первое знакомство с отладкой
  • Окна отладчика

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *