Спонсор: Microsoft
Опубликован: 31.08.2006 | Доступ: свободный | Студентов: 3925 / 218 | Оценка: 4.14 / 3.89 | Длительность: 39:16:00
ISBN: 978-5-9570-0021-3
Лекция 9:

Отладка программ на Visual Basic .NET

< Лекция 8 || Лекция 9: 1234 || Лекция 10 >

Отслеживание переменных с помощью окна Watch

Окно Autos (Видимые) полезно для изучения состояния отдельных переменных и свойств при их вычислении компилятором, но элементы в окне Autos (Видимые) сохраняют свои значения только для текущего (выделенного в отладчике) и предыдущего оператора (того, который только что был выполнен). Когда программа доходит до выполнения кода, не использующего эти переменные, они исчезают из окна Autos (Видимые).

Чтобы видеть содержимое переменных и свойств на протяжении всего выполнения программы, используйте окно Watch (Контрольное значение) - специальный инструмент Visual Studio, который отслеживает нужные значения, при работе в режиме останова. В Visual Basic 6 для изучения изменения значений переменных у вас был доступ к одному окну Watch (Контрольное значение). В Visual Studio .NET вы можете открыть до четырех окон Watch (Контрольное значение). Эти окна пронумерованы как Watch 1 (Контрольное значение 1), Watch 2 (Контрольное значение 2), Watch 3 (Контрольное значение 3) и Watch 4 (Контрольное значение 4) и находятся в подменю Watch (Контрольное значение), которое вы можете открыть, выбрав команду Windows (Окна) в меню Debug (Отладка). Также можно добавлять в окно Watch (Контрольное значение) такие выражения, как Age >= 13.

Открытие окна Watch

  1. Чтобы снова запустить программу Debug Test, щелкните на кнопке Start (Начать).

    Примечание. Готовый проект Debug Test находится в папке c:\vbnet03sbs\Гл.8\debug test.

    Я предполагаю, что точка останова, которую вы установили в предыдущем упражнении на строке Age = TextBox1.Text, все еще присутствует. Если эта точка останова не установлена, остановите выполнение программы и установите ее, щелкнув на полосе Margin Indicator (Указатель поля) рядом с этим оператором, как показано в шаге 10 предыдущего упражнения, а затем снова запустите программу.

  2. Введите в текстовое поле возраста число 20, а затем щелкните на Тест. Программа остановится на точке останова, и Visual Studio войдет в режим останова. Чтобы добавить в окно Watch (Контрольное значение) переменные, свойства или выражения, вы должны находиться в режиме останова. Добавить элементы очень просто: нужно выделить его в Редакторе кода, щелкнуть на выделении правой кнопкой мыши и на команде Add Watch (Добавить контрольное значение).
  3. Выделите переменную Age, щелкните на ней правой кнопкой мыши, а затем на команде Add Watch (Добавить контрольное значение). Visual Studio откроет окно Watch 1 (Контрольное значение 1) и добавит в него переменную Age. Значение этой переменной в настоящий момент равно 0, и столбец Type (Тип) окна указывает, что переменная Age относится к типу Integer.
  4. Выделите свойство TextBox2.Text, а затем перетащите его в пустую строку окна Watch 1 (Контрольное значение 1). Вы также можете перетаскивать элементы в окно Watch (Контрольное значение) из Редактора кода. Когда вы отпускаете кнопку мыши, Visual Studio добавляет свойство и отображает его значение (в настоящий момент это свойство содержит пустую строку).
  5. Выделите выражение Age < 20 и добавьте его в окно Watch (Контрольное значение). "Age < 20" является условным выражением. В окне Watch (Контрольное значение) можно отобразить его логическое (Boolean) значение точно так же, как вы делали это ранее в этой лекции, удерживая мышь над условием. Ваше окно Watch (Контрольное значение) будет иметь следующий вид.


    Теперь сделайте один шаг в вашем коде, чтобы увидеть, как изменятся значения в окне Watch 1 (Контрольное значение 1).

  6. Щелкните на кнопке Step Into (Шаг с заходом) панели инструментов Debug (Отладка).

    Совет. Вместо щелчка на кнопке Step Into (Шаг с заходом) на панели инструментов Debug (Отладка) можно нажать на клавиатуре клавишу (F8).

    Переменная Age принимает значение 20, а условие "Age < 20" вычисляется как False. Эти значения отображаются в окне Watch (Контрольное значение) красным цветом, так как они только что обновились.

  7. Еще три раза щелкните на кнопке Step Into (Шаг с заходом). В структуре выбора выполнится вариант Else, и значение свойства TextBox2.Text в окне Watch (Контрольное значение) изменится на "Вы не тинэйджер". Эта проверка условия работает корректно. Так как вы удовлетворены этим условием, то можете удалить его из окна Watch (Контрольное значение).
  8. Щелкните в окне Watch (Контрольное значение) на строке "Age < 20", а затем нажмите Delete. Visual Studio удалит это значение из окна Watch (Контрольное значение). Добавлять значения в окно Watch (Контрольное значение) и удалять их из него очень просто. Оставьте Visual Studio в режиме останова. Вы продолжите использовать переменную Age в следующем разделе.

Использование окна команд

До сих пор вы использовали для отладки те инструменты Visual Studio, которые позволяют входить в режим останова, выполнять операторы по одному и изучать значения важных переменных, свойств и выражений, имеющихся в вашей программе. Теперь вы узнаете, как изменять значение переменной и выполнять другие команды с помощью окна Command (Окно команд) - инструмента среды разработки Visual Studio двойного назначения. Когда окно команд находится в режиме Immediate (Интерпретация), вы можете использовать его для взаимодействия с кодом отлаживаемой программы на Visual Basic. Когда окно команд находится в режиме Command (командном), вы можете использовать его для исполнения команд Visual Studio, таких, как Save All (Сохранить все) или Print (Печать). Если вы исполняете более одной команды, то можете использовать клавиши со стрелками для просмотра предыдущих команд и их результатов.

Следующие упражнения демонстрируют, как работает окно Command (Окно команд); они предполагают, что вы отлаживаете программу Debug Test и что эта программа в настоящий момент находится в режиме останова.

Открытие окна команд в режиме Immediate (Интерпретация)

  1. В меню Debug (Отладка) укажите на Windows (Окна), а затем щелкните на Immediate (Интерпретация). Visual Studio откроет окно Command (Окно команд) в режиме Immediate (Интерпретация) - специальном состоянии, которое позволяет вам взаимодействовать с программой в режиме останова. Так как окно команд имеет два режима (Immediate (Интерпретация) и Command (командный)), важно научиться распознавать различные режимы, чтобы избежать ввода неверных команд. В режиме Immediate (Интерпретация) строка заголовка окна содержит текст "Command Window - Immediate" ("Окно команд: интерпретация").

    Примечание. Если окно команд находится в режиме Command (Командный), вы можете переключить его в режим Immediate (Интерпретация), введя команду immed. Если окно команд находится в режиме Immediate (Интерпретация), вы можете переключить его в командный режим, введя команду >cmd. (Символ > обязателен.)
  2. В окне команд, введите Age = 17, а затем нажмите на (Enter). Вы только что изменили значение переменной с помощью окна команд. Значение переменной Age в окне Watch (Контрольное значение) немедленно изменяется на 17, и когда оператор If будет выполнен в следующий раз, значение свойства TextBox2.Text изменится на "Вы тинэйджер". Ваше окно команд будет иметь следующий вид.


  3. Введите в окне команд следующий оператор, а затем нажмите на (Enter):

    TextBox2.Text = "Вы уже в возрасте!"

    Свойство Text объекта TextBox2 немедленно изменяется на "Вы уже в возрасте!". В режиме Immediate (Интерпретация) окно команд позволяет вам изменять значения свойств, также как и переменных.

  4. Два раза щелкните на кнопке Step Into (Шаг с заходом), чтобы снова отобразить форму Debug Test. Обратите внимание, что свойство Text объекта TextBox2 изменилось, как вы указали, но свойство Text объекта TextBox1 все еще содержит значение 20 (а не 17). Это происходит из-за того, что вы изменили в программе переменную Age, а не используемое для вывода этого значения свойство. Ваш экран будет выглядеть примерно так.

У режима Immediate (Интерпретация) окна команд много способов применения: он представляет собой великолепное дополнение к окну Watch (Контрольное значение) и поможет экспериментировать с различными тестовыми ситуациями, которые было бы сложно ввести в программу другим способом.

< Лекция 8 || Лекция 9: 1234 || Лекция 10 >
Жанболат Шаймерден
Жанболат Шаймерден

Можно ли выбирать язык для надписей и команд в среде разработки?

Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Светлана Ведяева
Светлана Ведяева
Россия, Саратов