Практическое руководство. Просмотр выражения в отладчике
Обновлен: Ноябрь 2007
Этот раздел применим для следующих версий.
Выпуск |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Экспресс-выпуск |
||||
Standard |
||||
Pro и Team |
Условные обозначения:
Применимо |
|
Неприменимо |
|
Команда или команды по умолчанию скрыты. |
Окно Контрольные значения и диалоговое окно Быстрая проверка – это окна, в которых можно вводить имена переменных и выражения для просмотра их значений во время сеанса отладки.
В диалоговом окне Быстрая проверка в каждый момент времени можно просматривать одну переменную или выражение. Это окно удобно, когда нужно быстро просмотреть одиночное значение или более крупную структуру данных. В окне Контрольные значения можно вести несколько переменных и выражений, которые требуется просматривать в течение всего сеанса отладки. В некоторых выпусках Visual Studio имеется несколько окон Контрольные значения, которые нумеруются от Контрольные значения 1 до Контрольные значения 4.
Имя переменной является простейшим выражением, которое можно ввести. При отладке машинного кода кроме имен переменных можно использовать имена регистров. Тем не менее, отладчик способен воспринимать и куда более сложные выражения. Например, можно ввести следующее выражение, определяющее среднее значение трех переменных:
(var1 + var2 + var3) / 3
В C# вместо имен объектов можно вводить их идентификаторы или псевдонимы.
В окне Контрольные значения можно вводить большинство допустимых выражений языка. Дополнительные сведения см. в разделе Выражения в отладчике.
При программировании в машинных кодах иногда может потребоваться уточнить контекст имени переменной или выражения, содержащего имя переменной. Под контекстом здесь понимается функция, исходный файл и модуль, где находится переменная. Для этого можно использовать синтаксис оператора контекста. Дополнительные сведения см. в разделе Оператор контекста (Выражения языка C/C++).
Выражения, влияющие на состояние программы
Вычисление некоторых выражений может привести к изменению значения некоторой переменной или иным способом повлиять на состояние программы. Например, вычисление следующего выражения изменяет значение var1:
var1 = var2
Выражения, которые изменяют данные, называют выражениями с побочными эффектами. Если ввести выражение с побочным эффектом в окне Контрольные значения, побочный эффект будет возникать при каждом вычислении выражения в окне Контрольные значения. Если вы не знаете, что у выражения есть побочные эффекты, то результаты могут стать непредсказуемыми. Если известно, что у выражения есть побочные эффекты, то оно вычисляется только один раз при первом его вводе. Последующие вычисления не выполняются. Этот режим можно отменить, щелкнув значок обновления, который стоит рядом со значением.
Непредвиденные побочные эффекты часто являются результатом выполнения функций. Например, можно ввести следующий вызов функции в окне Контрольные значения:
Func1(var1)
При вызове функции из окна Контрольные значения или Быстрая проверка вызываемая функция может изменить значения переменных, что приведет к побочному эффекту. Одним из способов, позволяющих избежать возможных непредвиденных побочных эффектов при выполнении функций, является отключение автоматического вызова функций в диалоговом окне Параметры. При этом будет отключено автоматическое вычисление новых языковых конструкций, таких как, например, свойства. Тем не менее, это безопаснее.
Примечание. |
---|
Иногда при просмотре выражения в окне Контрольные значения возникает значок обновления, который имеет вид двух зеленых стрелок внутри зеленого круга, направленных в противоположных направлениях. Его появление скорее всего обусловлено тем, что был отключен автоматический вызов функций. Значок обновления указывает на ошибку или на то, что значения являются устаревшими. Дополнительные сведения см. в разделе Практическое руководство. Обновление просматриваемых значений. |
В машинном коде и коде C# можно задавать формат вывода значений выражений с помощью описателей формата. Дополнительные сведения см. в разделах Определители формата в C++ и Определители формата в C#.
Отладчик Visual Studio автоматически раскрывает данные распространенных типов так, чтобы отобразить наиболее важные их элементы. Можно включить такой режим и для пользовательских типов данных. Дополнительные сведения см. в разделах Отображение пользовательских типов данных и Визуализаторы.
Примечание. |
---|
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих параметров или версии среды. Для изменения параметров выберите в меню Сервис пункт Импорт и экспорт параметров. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Вычисление выражения в окне "Контрольные значения"
В окне Контрольные значения щелкните пустую строку в столбце Имя. В этот момент отладчик должен находиться в режиме приостановки. Введите или вставьте имя переменной или выражение, которое нужно просмотреть.
либо
Перетащите переменную в строку в окне Контрольные значения.
Нажмите клавишу ВВОД.
Результат появится в столбце Значение. При вводе имени переменной массива или объекта в столбце Имя рядом с именем отображается список-дерево. Разверните или сверните переменную в столбце Имя.
Выражение остается в окне Контрольные значения до тех пор, пока не будет удалено.
Вычисление выражения в окне "Быстрая проверка"
В текстовое поле Выражение диалогового окна Быстрая проверка введите или вставьте переменную, регистр или выражение.
Нажмите кнопку Пересчитать или клавишу ВВОД.
Значение будет отображено в поле Текущее значение.
При вводе имени переменной массива или объекта в поле Выражение, в поле Текущее значение рядом с именем будет отображен список-дерево. Разверните или сверните переменную в столбце Имя.
Повторное вычисление заданного ранее выражения в окне "Быстрая проверка"
В диалоговом окне Быстрая проверка щелкните стрелку вниз, которая находится справа от поля Выражение.
Выберите одно из предыдущих выражений из раскрывающегося списка.
Нажмите кнопку Пересчитать.
См. также
Задачи
Практическое руководство. Использование окон переменных отладчика