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

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

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

Отладка программы Debug Test

  1. Запустите Visual Studio.
  2. В меню File (Файл) укажите на Open (Открыть) , а затем щелкните на Project (Проект). Появится диалоговое окно Open Project (Открыть проект).
  3. Откройте проект Debug Test, расположенный в папке c:\vbnet03sbs\Гл.8\debug test. Этот проект откроется в среде разработки.
  4. Отобразите форму. Программа Debug Test запрашивает у пользователя возраст. Когда пользователь щелкает на кнопке Тест, программа позволяет пользователю узнать, является ли он или она тинэйджером. Однако у программы есть проблема с идентификацией возраста в 13 лет, которую мы обсуждали ранее в этой лекции. Теперь для поиска ошибки нужно открыть панель инструментов Debug (Отладка) и установить точку останова.
  5. Если панель инструментов Debug (Отладка) не отображается, щелкните на меню View (Вид), укажите на Toolbars (Панели инструментов), а затем щелкните на Debug (Отладка). Под стандартной панелью инструментов появится панель инструментов Debug (Отладка).
  6. Щелкните на кнопке Start (Начать) панели инструментов Debug (Отладка). Программа запустится и отобразит форму Debug Test.
  7. Удалите 0 из текстового поля ввода возраста, введите 14, а затем щелкните на кнопке Тест. Программа отобразит сообщение "Вы тинэйджер". Итак, программа вывела корректный результат.
  8. Введите в текстовое поле возраста 13, а затем щелкните на кнопке Тест. Программа отобразит сообщение Вы не тинэйджер, как показано здесь.


    Этот ответ некорректен, и для устранения ошибки необходимо взглянуть на код программы.

  9. Щелкните на кнопке Выход формы, а затем откройте Редактор кода.
  10. Переместите указатель мыши к полосе Margin Indicator (указатель поля - серая полоса, расположенная сразу за левым полем окна Редактора кода) рядом с оператором Age = TextBox1.Text в процедуре события Button1_Click, а затем щелкните на этой полосе, чтобы установить точку останова. Немедленно появится красная точка останова. Точка останова показывает то место программы, где выполнение будет остановлено, и вы сможете использовать инструменты разработки Visual Studio. Положение точки останова и ее внешний вид, показаны на следующей иллюстрации.

  11. Чтобы снова запустить программу, щелкните на кнопке Start (Начать). Как и прежде, появится форма, и вы сможете продолжить ваши тесты.
  12. Введите в текстовое поле возраста 13, а затем щелкните на Тест. Visual Basic снова откроет Редактор кода и отобразит процедуру события Button1_Click - код программы, который в настоящий момент исполняется компилятором. Как показано на следующей иллюстрации, оператор, который вы выбрали для создания точки останова, выделен желтым цветом, а на полосе Margin Indicator (Указатель поля) появилась стрелка. Теперь Visual Studio находится в режиме останова, и вы можете узнать этот режим по слову "[break]", появившемуся в строке заголовка Visual Studio. В режиме останова можно посмотреть, как обрабатывается логика вашей программы.

    Примечание. Вы также можете войти в режим останова программы на Visual Basic, поместив в вашем коде программы оператор Stop в том месте, где вы хотите приостановить выполнение. Это старый, но все еще надежный метод входа в режим останова для программ на Visual Basic.
  13. Поместите указатель мыши в Редакторе кода над переменной Age. Visual Studio выведет сообщение "Age = 0". Пока вы находитесь в режиме останова, вы можете отображать значения переменных или свойств, просто удерживая мышь над названием переменной в коде программы. В настоящий момент Age содержит значение 0, так как текстовое поле TextBox1.Text еще не заполнено. Этот оператор является следующим оператором, который будет выполнен компилятором.

    Совет. В режиме останова можно изучить значения свойств и переменных, но нельзя изменить код программы в Редакторе кода - при выполнении программы он заблокирован и защищен.
  14. Чтобы выполнить следующий оператор программы, щелкните на кнопке Step Into (Шаг с заходом), расположенной на панели инструментов Debug (Отладка). Кнопка Step Into (Шаг с заходом) исполняет следующий оператор программы, расположенный в текущей процедуре события (строку, которая в данный момент выделена); она позволяет видеть, как изменяется состояние программы, когда выполняется только один ее оператор. Если вы сейчас подержите указатель мыши над переменной Age, то увидите, что она содержит значение 13.
  15. В меню Debug (Отладка) укажите на Windows (Окна), а затем щелкните на Autos (Видимые). Подменю Debug Windows (Окна отладки) дает доступ к полному набору окон отладки, имеющихся в Visual Studio. Окно Autos (Видимые) - это автоматическое окно, показывающее состояние переменных и свойств, которые используются в текущий момент. Переменная Age содержит значение 13, свойство TextBox1.Text содержит строку "13", а свойство TextBox2.Text - пустую строку.

  16. Еще дважды щелкните на кнопке Step Into (Шаг с заходом). Оператор If вычисляет условное выражение как False и переходит к оператору Else структуры выбора. Вот наша ошибка - логика структуры выбора некорректна, так как 13-летний человек является тинэйджером.
  17. Выделите проверку условия Age > 13, а затем удерживайте указатель мыши над выделенным текстом. Visual Studio вычислит это условие и отобразит сообщение "Age > 13 = False".
  18. Выделите проверку условия Age < 20, а затем удерживайте указатель мыши над выделенным текстом. Visual Studio выведет сообщение "Age < 20 = True ". Указатель мыши дал нам дополнительную подсказку - некорректный результат дает только первое условие! Так как 13-летний человек является тинэйджером, Visual Basic должен получить в результате True, но условие Age > 13 возвращает значение False. И это заставляет выполнять вариант Else структуры выбора. Вы поняли, в чем проблема? Первое сравнение для данного конкретного случая с 13 требует наличия оператора >=. Теперь остановите отладку и исправьте эту логическую ошибку.
  19. Щелкните на кнопке Stop Debugging (Остановить отладку) панели инструментов Debug (Отладка).
  20. В Редакторе кода добавьте в первое условие оператора If знак =. Теперь этот оператор примет вид If Age >= 13 And Age < 20 Then
  21. Снова запустите программу и проверьте ваше решение, обращая особое внимание на значения 12, 13, 19 и 20 - "крайние" случаи, которые могут вызвать ошибки. Чтобы посмотреть, как в программе выполняется оператор If, используйте кнопку Step Into (Шаг с заходом). Чтобы отслеживать при выполнении тестов значения переменных, используйте окно Autos (Видимые). Когда появится форма, введите новое значение и снова запустите тест. Обратите внимание, что выделение отдельных выражений (например, условных проверок) и удерживание над ними мыши позволяет лучше понять, как они вычисляются.
  22. Когда вы закончите экспериментировать с режимом останова, завершите работу программы. Для этого щелкните на кнопке Stop Debugging (Остановить отладку) на панели инструментов Debug (Отладка). Поздравляем! Вы успешно использовали режим останова для поиска и исправления логической ошибки в программе.
< Лекция 8 || Лекция 9: 1234 || Лекция 10 >
Жанболат Шаймерден
Жанболат Шаймерден

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

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