Проверка переменных в окнах "Видимые" и "Локальные" в Visual Studio
В окнах Видимые и Локальные отображаются значения переменных во время отладки. Окна доступны только во время сеанса отладки. В окне "Автозапуск" отображаются переменные, используемые вокруг текущей инструкции, в которой отладчик приостановлен. В окне Локальные отображаются переменные, определенные в локальной области, которая обычно является текущей функцией или методом.
Примечание.
Если это первый раз, когда вы пытались выполнить отладку кода, вам может потребоваться прочитать отладку для абсолютных начинающих и методов отладки и средств , прежде чем пройти эту статью.
Окно Видимые доступно для кода на C#, Visual Basic, C++ и Python, но не для кода на JavaScript или F#.
Чтобы открыть окно Видимые, во время отладки последовательно выберите пункты Отладка>Окна>Видимые или нажмите сочетание клавиш CTRL+ALT+V>A.
Чтобы открыть окно Локальные, во время отладки последовательно выберите пункты Отладка>Окна>Локальные или нажмите сочетание клавиш ALT+4.
Использование окон "Видимые" и "Локальные"
Массивы и объекты отображаются в окнах Видимые и Локальные как элементы управления в виде дерева. Щелкните стрелку слева от имени переменной, чтобы развернуть представление и увидеть поля и свойства. Далее приведен пример объекта System.IO.FileStream в окне Локальные.
Значение красного цвета в окне Локальные или Видимые означает, что значение изменилось с момента последнего вычисления. Изменение могло произойти во время предыдущего сеанса отладки или быть выполнено в окне.
По умолчанию в окнах отладчика используется десятичный числовой формат. Чтобы изменить его на шестнадцатеричный, щелкните правой кнопкой мыши в окне Локальные или Видимые и выберите пункт Шестнадцатеричный вывод. Это изменение распространяется на все окна отладчика.
Изменение значений переменных в окне "Видимые" и "Локальные"
Чтобы изменить значения большинства переменных в окнах Видимые или Локальные, дважды щелкните текущее значение и введите новое.
В качестве значения можно ввести выражение, например a + b
. Отладчик принимает большинство допустимых выражений языка.
При работе с машинным кодом C++ может потребоваться определить контекст имени переменной. Дополнительные сведения см. в разделе Оператор контекста (C++).
Внимание
Перед изменением значений и выражений нужно оценить его возможные последствия. Возможны следующие проблемы.
Вычисление некоторых выражений может привести к изменению значения некоторой переменной или иным образом повлиять на состояние программы. Например, вычисление
var1 = ++var2
изменяет значенияvar1
иvar2
. Такие выражения называют выражениями с побочными эффектами. Если вы не осведомлены о побочных эффектах, они могут привести к непредвиденным результатам.Изменение значений с плавающей запятой может привести к незначительной погрешности, связанной с преобразованием дробных компонентов из десятичной формы в двоичную. Даже внешне кажущееся безвредным редактирование может привести к изменениям некоторых младших разрядов переменной с плавающей запятой.
Поиск в окне "Видимые" или "Локальные"
Используя панель поиска над каждым окном, можно искать ключевые слова в столбцах "Имя", "Значение" и "Тип" в окнах Видимые или Локальные. Нажмите клавишу ВВОД или щелкните одну из стрелок, чтобы выполнить поиск. Чтобы отменить текущий поиск, нажмите значок "x" на панели поиска.
Для перехода между найденными совпадениями используйте стрелки влево и вправо (SHIFT + F3 и F3 соответственно).
Чтобы сделать поиск более или менее подробным, используйте раскрывающийся список "Поиск более глубоко " в верхней части окна "Авто" или "Локальные", чтобы выбрать количество уровней, глубоких для поиска в вложенных объектах .
Закрепление свойств в окне "Видимые" или "Локальные"
Примечание.
Эта возможность поддерживается для .NET Core 3.0 или более поздних версий.
С помощью средства Закрепляемые свойства можно быстро проверить объекты на основе их свойств в окнах "Видимые" и "Локальные". Чтобы воспользоваться этим средством, наведите указатель мыши на свойство и выберите значок булавки либо щелкните правой кнопкой мыши и в контекстном меню выберите пункт Закрепить элемент в избранном. Это пузырька вверх по этому свойству в верхней части списка свойств объекта, а имя и значение свойства отображаются в столбце Value . Чтобы открепить свойство, щелкните значок булавки еще раз или в контекстном меню выберите пункт Открепить элемент в избранном.
Вы также можете переключать имена свойств и отфильтровать не закрепленные свойства при просмотре списка свойств объекта в окнах "Авто" или "Локальные". Доступ к каждому параметру можно получить, нажимая кнопки на панели инструментов над окнами "Видимые" или "Локальные".
Изменение контекста для окна "Видимые" или "Локальные"
С помощью панели инструментов Место отладки можно выбирать нужную функцию, поток или процесс, что приводит к изменению контекста для окон Видимые и Локальные.
Чтобы включить панель инструментов "Расположение отладки", щелкните пустую часть области панели инструментов и выберите "Расположение отладки" в раскрывающемся списке или выберите "Просмотреть>панели инструментов отладки".>
Задайте точку останова и начните отладку. При достижении точки останова выполнение приостанавливается и вы можете увидеть расположение на панели инструментов Место отладки.
Получение помощи по искусственному интеллекту
Если у вас есть Copilot, вы можете получить помощь по искусственному интеллекту во время просмотра переменных в окнах "Авто" или "Локальные" или в советах по данным. Щелкните переменную правой кнопкой мыши и используйте кнопку Ask Copilot. В этом сценарии Copilot уже знает контекст вашего вопроса, поэтому вам не нужно предоставлять контекст в чате. Дополнительные сведения см. в разделе Отладка с помощью Copilot.
Переменные в окне автозапуска (C#, C++, Visual Basic, Python)
При работе с разными языками в окне Видимые отображаются разные переменные.
При использовании C# или Visual Basic в окне Видимые отображаются все переменные, используемые в текущей или предыдущей строках. Например, в коде C# или Visual Basic объявите следующие четыре переменные.
public static void Main() { int a, b, c, d; a = 1; b = 2; c = 3; d = 4; }
Задайте точку останова в строке
c = 3;
и запустите отладчик. Когда выполнение приостановится, в окне Видимые будет отображено следующее.Значение
c
равно 0, так как строкаc = 3
еще не была выполнена.При использовании C++ в окне Видимые отображаются переменные, которые используются по крайней мере в трех строках до текущей строки (строки, в которой выполнение приостановлено). Например, в коде C++ объявите шесть переменных.
void main() { int a, b, c, d, e, f; a = 1; b = 2; c = 3; d = 4; e = 5; f = 6; }
Задайте точку останова в строке
e = 5;
и запустите отладчик. Когда выполнение остановится, в окне Видимые будет отображено следующее.Переменная
e
не инициализирована, так как код в строкеe = 5
еще не выполнен.
View return values of method calls
В коде .NET и C++ можно просматривать возвращаемые значения в окне Видимые при выполнении шага с обходом вызова метода или выходом из него. Просмотр возвращаемых значений вызова метода может быть полезен, если они не хранятся в локальных переменных. Метод можно использовать в качестве параметра или возвращаемого значения другого метода.
Примечание.
Начиная с Visual Studio 2022 версии 17.12 (предварительная версия 3), вы также можете просматривать встроенные значения, а не только в окне автозапуска.
Например, следующий код 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)
{
return j - i;
}
Чтобы просмотреть возвращаемые значения вызовов методов sumVars()
и subtractVars()
в окне "Видимые", выполните следующие действия.
Установите точку останова на строке
int x = sumVars(a, b) + subtractVars(c, d);
.Начните отладку и, когда выполнение приостановится в точке останова, выберите Шаг с обходом или нажмите клавишу F10. Вы увидите следующие возвращаемые значения в окне Видимые.