Visual Basic .NET на уроках информатики

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

Разбить на страницы
Показывать лекцию целиком

В этой лекции вы узнаете, как:

  • определять в программах различные типы ошибок;
  • использовать инструменты для отладки Visual Studio .NET для установки точек останова и исправления ошибок;
  • использовать окно Watch для проверки значений переменных во время выполнения программы;
  • использовать окно Command (Окно команд) для изменения значений переменных и исполнения команд в Visual Studio.
  • В предыдущих лекциях у вас было достаточно возможностей допустить ошибки в программах. В отличие от человеческих диалогов, которые обычно не зависят от случайных грамматических ошибок и неверного произношения, общение между разработчиком программного обеспечения и компилятором Microsoft Visual Basic требует точного соблюдения всех правил и ограничений языка программирования Visual Basic. В этой лекции рассказывается о дефектах программного обеспечения - багах (ошибках) - которые не дают запуститься программам на Visual Basic. Вы узнаете о различных типах ошибок, появляющихся в программах, и о том, какие инструменты отладки Visual Studio .NET предоставляет для обнаружения и исправления этих ошибок. Эти знания будут вам крайне необходимы при написании ваших собственных программ.

    Что нового в Visual Basic .NET?

  • Visual Basic .NET содержит несколько новых инструментов для поиска и корректировки ошибок. Многие из знакомых команд отладки Visual Basic 6 по прежнему являются частью Visual Studio (Start (Начать), Break (Приостановить), End (Закончить), Next (Следующий оператор), Step Into (Шаг с заходом), Step Over (Шаг с обходом)), но есть также ряд новых инструментов отладки и команд, включая пересмотренную панель Debug (Отладка), команды меню, которые управляют процессами и исключениями, и инструменты, которые поддерживают отладку многоязыких решений.
  • В интерфейс пользователя Visual Studio .NET добавлено несколько новых окон отладки, включая Autos (Видимые), Command (Окно команд), Call Stack (Список задач), Threads (Потоки), Memory (Память), Disassembly (Дизассемблированный код) и Registers (Регистры). Вы не будете использовать эти инструменты во время каждой сессии отладки, но они удобны при работе со сложными приложениями.
  • Поиск и исправление ошибок

    Ошибки, с которыми вы до сих пор сталкивались в ваших программах, были просто опечатками, или синтаксическими ошибками. В программах встречаются и более сложные ошибки - такие, которые вы не можете найти, просто просмотрев используемые объекты, свойства и операторы. Среда разработки Visual Studio содержит несколько инструментов, которые помогут вам отследить и исправить ошибки в ваших программах. Эти инструменты не застрахуют вас от совершения ошибок, но облегчат их поиск и исправление.

    Три типа ошибок

    В программах на Visual Basic могут возникнуть три типа ошибок: синтаксические ошибки, ошибки времени исполнения и логические ошибки.

  • Синтаксическая ошибка (или ошибка компиляции) - это программная ошибка (например, неправильно написанное имя свойства или ключевое слово), которая нарушает правила написания программ на Visual Basic. Visual Basic распознает некоторые типы синтаксических ошибок при вводе операторов программы и не позволит запустить программу до тех пор, пока вы не исправите их все.
  • Ошибка времени исполнения - это ошибка, которая приводит к неожиданной остановке программы во время ее выполнения. Ошибки времени исполнения возникают, когда программа при выполнении останавливается из-за необнаруженной синтаксической ошибки. Ваш код сгенерирует ошибку времени исполнения, если вы, например, неправильно указали имя файла при использовании метода System.Drawing.Image.FromFile или при попытке считать данные с дисковода гибких дисков, когда в нем нет дискеты.
  • Логическая ошибка - это человеческая ошибка - ошибка в программе, которая приводит к тому, что код программы выдает неверные результаты. Большинство усилий при отладке тратится именно на поиск и исправление логических ошибок, совершенных программистом.
  • Если вы сталкиваетесь с синтаксической ошибкой, то чаще всего вы можете решить проблему с помощью справочной системы Visual Basic, из которой можно получить дополнительную информацию об ошибке, и исправить эту ошибку, уделив дополнительное внимание точному синтаксису используемых вами функций, объектов, методов и свойств. В Редакторе кода неверные операторы подчеркиваются синей волнистой линией. Удерживая указатель мыши над этим оператором, вы можете получить об ошибке дополнительную информацию. На следующей иллюстрации показано сообщение об ошибке, которое появляется в Visual Studio при некорректном вводе ключевого слова Case ("Csae" вместо "Case"). Это сообщение об ошибке выглядит как всплывающая подсказка.

    Если вы сталкиваетесь с ошибкой времени исполнения, то сможете решить проблему, исправив вводимые данные. Например, если в объект вывода изображений некорректно загружается растровое изображение, проблема наверняка заключается в неверно указанном пути к файлу. Однако многие ошибки времени исполнения требуют более сложного решения - структурного обработчика ошибок, который является специальным блоком кода программы, распознающим ошибку времени исполнения при ее возникновении. Он подавляет все сообщения об ошибках и подстраивает все условия программы для решения этой проблемы. Новый синтаксис структурных обработчиков ошибок обсуждается в лекции 9 .

    Обнаружение логических ошибок

    С точки зрения устранения, логические ошибки в программах зачастую являются наиболее сложными. Они - результат неверных предположений и планирования, а не просто неправильного понимания синтаксиса Visual Basic. Рассмотрим следующую структуру выбора If...Then, которая проверяет два условия, а затем, в зависимости от результата, отображает одно из двух сообщений:

    If Age > 13 And Age < 20 Then
    TextBox2.Text = "Вы тинэйджер"
    Else
    TextBox2.Text = "Вы не тинэйджер"
    End If

    Можете обнаружить ошибку в этой структуре? Тинэйджер - это человек, которому от 13 до 19 лет включительно, но эта структура не может идентифицировать человека, которому ровно 13 лет. Для этого возраста структура ошибочно отображает сообщение "Вы не тинэйджер". Этот тип ошибки не является синтаксической ошибкой (так как операторы соответствуют правилам Visual Basic); это интеллектуальная - или логическая ошибка. Правильная структура выбора содержит в первом сравнении оператора If $$\dots$$ Then оператор "больше или равно" (>=), как показано здесь:

    If Age >= 13 And Age < 20 Then

    Поверите вы или нет, но этот тип ошибок наиболее распространен в программах на Visual Basic.

    Отладка 101: использование режима останова

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

    При отладке вашего приложения используется панель инструментов Debug (Отладка) - специальная панель инструментов, предназначенная для поиска ошибок. Эта панель инструментов показана на следующей иллюстрации. Ее можно открыть, выбрав команду Toolbars (Панели инструментов) в меню View (Вид), а затем щелкнув на Debug (Отладка).

    В следующем упражнении вы установите точку останова, и используете режим останова для обнаружения и исправления логической ошибки в структуре If...Then. Эта ошибка является частью нормальной программы. Чтобы выявить проблему, вы будете использовать кнопку Step Into (Шаг с заходом), расположенную на панели инструментов Debug (Отладка), а для изучения значений ключевых переменных и свойств программы окно Autos (Видимые). Обратите особое внимание на эту методику отладки. Ее можно использовать для обнаружения и исправления ошибок в ваших собственных программах.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Еще три раза щелкните на кнопке Step Into (Шаг с заходом). В структуре выбора выполнится вариант Else, и значение свойства TextBox2.Text в окне Watch (Контрольное значение) изменится на "Вы не тинэйджер". Эта проверка условия работает корректно. Так как вы удовлетворены этим условием, то можете удалить его из окна Watch (Контрольное значение).
  • Щелкните в окне 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 (Интерпретация)

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

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

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

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

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

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

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

    Переключение окна команд в командный режим

    Окно команд также может быть использовано для запуска команд интерфейса среды Visual Studio. Например, команда File.SaveAll сохранит все файлы текущего проекта. Эта команда эквивалентна команде Save All (Сохранить все) из меню File (Файл). Однако прежде чем вы сможете исполнять команды среды разработки, вы должны переключить окно команд в командный режим. Попрактикуйтесь в использовании командного режима с помощью следующего упражнения.

    Запуск команды File.SaveAll

  • Для переключения в командный режим, введите в окне команд команду >cmd, а затем нажмите на (Enter). Строка заголовка окна команд изменится на "Command Window" (Окно команд) и в окне появится символ запроса команд ">" (визуальная подсказка о том, что окно находится в командном режиме).
  • Введите в окне File.SaveAll, а затем нажмите на (Enter). Visual Studio сохранит текущий проект, а затем снова появится запрос команды.

    Совет. Вы видели все команды, которые появились, когда вы ввели в окне команд слово "File"? Окно команд использует функцию автозавершения написания команд и показывает вам все команды, начинающиеся с символов, которые вы уже ввели. Это мощная функция, с помощью которой можно найти большинство команд, выполняемых с помощью окна команд.
  • Щелкните на кнопке Закрыть окна команд.
  • Следующий шаг: удаление точек останова

    Если вы внимательно следовали инструкциям в этой лекции, то программа Debug Test все еще выполняется и в ней есть точка останова. Чтобы удалить эту точку останова и завершить программу, выполните следующие шаги. Итак, отладка программы Debug Test завершена.

    Удаление точки останова

  • Щелкните в Редакторе кода на красном кружке, расположенном на полосеMargin Indicator (Указатель поля) и ассоциированном с точкой останова. Точка останова исчезнет. Это все, что касается этой задачи. Заметьте, что если у вас в программе более одной точки останова, вы можете удалить их все, щелкнув на команде Clear All Breakpoints (Снять все точки останова) из меню Debug (Отладка). Visual Studio сохраняет точки останова в вашем проекте, так что важно знать, как удалять их; в противном случае они останутся в вашей программе, даже после ее перезапуска!
  • Щелкните на кнопке Stop Debugging (Остановить отладку) панели инструментов Debug (Отладка). Выполнение программы Debug Test завершится.
  • В меню View (Вид) укажите на Toolbars (Панели инструментов), а затем щелкните на Debug (Отладка). Панель инструментов Debug (Отладка) закроется.
  • Вы познакомились с основными методиками отладки программ с помощью Visual Studio .NET. В следующей лекции вы узнаете, как обрабатывать ошибки времени исполнения с помощью структурных обработчиков ошибок.

    Краткая справка по лекции 8

    Чтобы Сделайте следующее
    Отобразить панель инструментов Debug В меню View (Вид) укажите на Toolbars (Панели инструментов), а затем щелкните на Debug (Отладка).
    Установить точку останова В Редакторе кода щелкните на полосе Margin Indicator радом с оператором, на котором вы хотите остановить выполнение программы. Когда компилятор достигнет точки останова, он перейдет в режим останова. Или в программе, в том месте, где вы хотите остановить выполнение программы, поместите оператор Stop.
    Выполнить одну строку кода в Code Editor Щелкните на кнопке Step Into (Шаг с заходом) панели инструментов Debug (Отладка).
    Проверить значение переменной, свойства или выражения из Code Editor Выделите значение в Code Editor (Редакторе кода), а затем удерживайте над ним мышь.
    Использовать окно Autos для изучения переменной из текущей или предыдущей строки В режиме останова щелкните на меню Debug (Отладка), укажите на Windows (Окна), а затем щелкните на Autos (Видимые).
    Добавить в окно Watch переменную, свойство или выражение В режиме останова выделите значение в Редакторе кода, щелкните на нем правой кнопкой мыши, а затем щелкните на Add Watch (Добавить контрольное значение).
    Отобразить окно Watch В режиме останова щелкните на меню Debug (Отладка), укажите на Windows (Окна), а затем щелкните на Watch (Контрольное значение).
    Открыть окно Command в режиме Immediate В меню Debug (Отладка) укажите на Windows (Окна), а затем щелкните на Immediate (Имитация).
    Переключаться между режимами Command и Immediate окна Command Для переключения в командный режим окна команд, введите >cmd, а затем нажмите на (Enter). Для переключения в режим Immediate (Имитация) окна команд, введите immed, а затем нажмите на (Enter).
    Удалить точку останова Щелкните на точке останова на полосе Margin Indicator в окне Редактора кода или щелкните на команде Clear All Breakpoints (Удалить все точки останова) в меню Debug (Отладка).
    Остановить отладку Щелкните на команде Stop Debugging (Остановить отладку) на панели инструментов Debug (Отладка).
    Страницы:

    В этой лекции вы узнаете, как:

  • определять в программах различные типы ошибок;
  • использовать инструменты для отладки Visual Studio .NET для установки точек останова и исправления ошибок;
  • использовать окно Watch для проверки значений переменных во время выполнения программы;
  • использовать окно Command (Окно команд) для изменения значений переменных и исполнения команд в Visual Studio.
  • В предыдущих лекциях у вас было достаточно возможностей допустить ошибки в программах. В отличие от человеческих диалогов, которые обычно не зависят от случайных грамматических ошибок и неверного произношения, общение между разработчиком программного обеспечения и компилятором Microsoft Visual Basic требует точного соблюдения всех правил и ограничений языка программирования Visual Basic. В этой лекции рассказывается о дефектах программного обеспечения - багах (ошибках) - которые не дают запуститься программам на Visual Basic. Вы узнаете о различных типах ошибок, появляющихся в программах, и о том, какие инструменты отладки Visual Studio .NET предоставляет для обнаружения и исправления этих ошибок. Эти знания будут вам крайне необходимы при написании ваших собственных программ.

    Что нового в Visual Basic .NET?

  • Visual Basic .NET содержит несколько новых инструментов для поиска и корректировки ошибок. Многие из знакомых команд отладки Visual Basic 6 по прежнему являются частью Visual Studio (Start (Начать), Break (Приостановить), End (Закончить), Next (Следующий оператор), Step Into (Шаг с заходом), Step Over (Шаг с обходом)), но есть также ряд новых инструментов отладки и команд, включая пересмотренную панель Debug (Отладка), команды меню, которые управляют процессами и исключениями, и инструменты, которые поддерживают отладку многоязыких решений.
  • В интерфейс пользователя Visual Studio .NET добавлено несколько новых окон отладки, включая Autos (Видимые), Command (Окно команд), Call Stack (Список задач), Threads (Потоки), Memory (Память), Disassembly (Дизассемблированный код) и Registers (Регистры). Вы не будете использовать эти инструменты во время каждой сессии отладки, но они удобны при работе со сложными приложениями.
  • Поиск и исправление ошибок

    Ошибки, с которыми вы до сих пор сталкивались в ваших программах, были просто опечатками, или синтаксическими ошибками. В программах встречаются и более сложные ошибки - такие, которые вы не можете найти, просто просмотрев используемые объекты, свойства и операторы. Среда разработки Visual Studio содержит несколько инструментов, которые помогут вам отследить и исправить ошибки в ваших программах. Эти инструменты не застрахуют вас от совершения ошибок, но облегчат их поиск и исправление.

    Три типа ошибок

    В программах на Visual Basic могут возникнуть три типа ошибок: синтаксические ошибки, ошибки времени исполнения и логические ошибки.

  • Синтаксическая ошибка (или ошибка компиляции) - это программная ошибка (например, неправильно написанное имя свойства или ключевое слово), которая нарушает правила написания программ на Visual Basic. Visual Basic распознает некоторые типы синтаксических ошибок при вводе операторов программы и не позволит запустить программу до тех пор, пока вы не исправите их все.
  • Ошибка времени исполнения - это ошибка, которая приводит к неожиданной остановке программы во время ее выполнения. Ошибки времени исполнения возникают, когда программа при выполнении останавливается из-за необнаруженной синтаксической ошибки. Ваш код сгенерирует ошибку времени исполнения, если вы, например, неправильно указали имя файла при использовании метода System.Drawing.Image.FromFile или при попытке считать данные с дисковода гибких дисков, когда в нем нет дискеты.
  • Логическая ошибка - это человеческая ошибка - ошибка в программе, которая приводит к тому, что код программы выдает неверные результаты. Большинство усилий при отладке тратится именно на поиск и исправление логических ошибок, совершенных программистом.
  • Если вы сталкиваетесь с синтаксической ошибкой, то чаще всего вы можете решить проблему с помощью справочной системы Visual Basic, из которой можно получить дополнительную информацию об ошибке, и исправить эту ошибку, уделив дополнительное внимание точному синтаксису используемых вами функций, объектов, методов и свойств. В Редакторе кода неверные операторы подчеркиваются синей волнистой линией. Удерживая указатель мыши над этим оператором, вы можете получить об ошибке дополнительную информацию. На следующей иллюстрации показано сообщение об ошибке, которое появляется в Visual Studio при некорректном вводе ключевого слова Case ("Csae" вместо "Case"). Это сообщение об ошибке выглядит как всплывающая подсказка.

    Если вы сталкиваетесь с ошибкой времени исполнения, то сможете решить проблему, исправив вводимые данные. Например, если в объект вывода изображений некорректно загружается растровое изображение, проблема наверняка заключается в неверно указанном пути к файлу. Однако многие ошибки времени исполнения требуют более сложного решения - структурного обработчика ошибок, который является специальным блоком кода программы, распознающим ошибку времени исполнения при ее возникновении. Он подавляет все сообщения об ошибках и подстраивает все условия программы для решения этой проблемы. Новый синтаксис структурных обработчиков ошибок обсуждается в лекции 9 .

    Обнаружение логических ошибок

    С точки зрения устранения, логические ошибки в программах зачастую являются наиболее сложными. Они - результат неверных предположений и планирования, а не просто неправильного понимания синтаксиса Visual Basic. Рассмотрим следующую структуру выбора If...Then, которая проверяет два условия, а затем, в зависимости от результата, отображает одно из двух сообщений:

    If Age > 13 And Age < 20 Then
    TextBox2.Text = "Вы тинэйджер"
    Else
    TextBox2.Text = "Вы не тинэйджер"
    End If

    Можете обнаружить ошибку в этой структуре? Тинэйджер - это человек, которому от 13 до 19 лет включительно, но эта структура не может идентифицировать человека, которому ровно 13 лет. Для этого возраста структура ошибочно отображает сообщение "Вы не тинэйджер". Этот тип ошибки не является синтаксической ошибкой (так как операторы соответствуют правилам Visual Basic); это интеллектуальная - или логическая ошибка. Правильная структура выбора содержит в первом сравнении оператора If $$\dots$$ Then оператор "больше или равно" (>=), как показано здесь:

    If Age >= 13 And Age < 20 Then

    Поверите вы или нет, но этот тип ошибок наиболее распространен в программах на Visual Basic.

    Отладка 101: использование режима останова

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

    При отладке вашего приложения используется панель инструментов Debug (Отладка) - специальная панель инструментов, предназначенная для поиска ошибок. Эта панель инструментов показана на следующей иллюстрации. Ее можно открыть, выбрав команду Toolbars (Панели инструментов) в меню View (Вид), а затем щелкнув на Debug (Отладка).

    В следующем упражнении вы установите точку останова, и используете режим останова для обнаружения и исправления логической ошибки в структуре If...Then. Эта ошибка является частью нормальной программы. Чтобы выявить проблему, вы будете использовать кнопку Step Into (Шаг с заходом), расположенную на панели инструментов Debug (Отладка), а для изучения значений ключевых переменных и свойств программы окно Autos (Видимые). Обратите особое внимание на эту методику отладки. Ее можно использовать для обнаружения и исправления ошибок в ваших собственных программах.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Еще три раза щелкните на кнопке Step Into (Шаг с заходом). В структуре выбора выполнится вариант Else, и значение свойства TextBox2.Text в окне Watch (Контрольное значение) изменится на "Вы не тинэйджер". Эта проверка условия работает корректно. Так как вы удовлетворены этим условием, то можете удалить его из окна Watch (Контрольное значение).
  • Щелкните в окне 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 (Интерпретация)

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

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

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

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

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

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

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

    Переключение окна команд в командный режим

    Окно команд также может быть использовано для запуска команд интерфейса среды Visual Studio. Например, команда File.SaveAll сохранит все файлы текущего проекта. Эта команда эквивалентна команде Save All (Сохранить все) из меню File (Файл). Однако прежде чем вы сможете исполнять команды среды разработки, вы должны переключить окно команд в командный режим. Попрактикуйтесь в использовании командного режима с помощью следующего упражнения.

    Запуск команды File.SaveAll

  • Для переключения в командный режим, введите в окне команд команду >cmd, а затем нажмите на (Enter). Строка заголовка окна команд изменится на "Command Window" (Окно команд) и в окне появится символ запроса команд ">" (визуальная подсказка о том, что окно находится в командном режиме).
  • Введите в окне File.SaveAll, а затем нажмите на (Enter). Visual Studio сохранит текущий проект, а затем снова появится запрос команды.

    Совет. Вы видели все команды, которые появились, когда вы ввели в окне команд слово "File"? Окно команд использует функцию автозавершения написания команд и показывает вам все команды, начинающиеся с символов, которые вы уже ввели. Это мощная функция, с помощью которой можно найти большинство команд, выполняемых с помощью окна команд.
  • Щелкните на кнопке Закрыть окна команд.
  • Следующий шаг: удаление точек останова

    Если вы внимательно следовали инструкциям в этой лекции, то программа Debug Test все еще выполняется и в ней есть точка останова. Чтобы удалить эту точку останова и завершить программу, выполните следующие шаги. Итак, отладка программы Debug Test завершена.

    Удаление точки останова

  • Щелкните в Редакторе кода на красном кружке, расположенном на полосеMargin Indicator (Указатель поля) и ассоциированном с точкой останова. Точка останова исчезнет. Это все, что касается этой задачи. Заметьте, что если у вас в программе более одной точки останова, вы можете удалить их все, щелкнув на команде Clear All Breakpoints (Снять все точки останова) из меню Debug (Отладка). Visual Studio сохраняет точки останова в вашем проекте, так что важно знать, как удалять их; в противном случае они останутся в вашей программе, даже после ее перезапуска!
  • Щелкните на кнопке Stop Debugging (Остановить отладку) панели инструментов Debug (Отладка). Выполнение программы Debug Test завершится.
  • В меню View (Вид) укажите на Toolbars (Панели инструментов), а затем щелкните на Debug (Отладка). Панель инструментов Debug (Отладка) закроется.
  • Вы познакомились с основными методиками отладки программ с помощью Visual Studio .NET. В следующей лекции вы узнаете, как обрабатывать ошибки времени исполнения с помощью структурных обработчиков ошибок.

    Краткая справка по лекции 8

    Чтобы Сделайте следующее
    Отобразить панель инструментов Debug В меню View (Вид) укажите на Toolbars (Панели инструментов), а затем щелкните на Debug (Отладка).
    Установить точку останова В Редакторе кода щелкните на полосе Margin Indicator радом с оператором, на котором вы хотите остановить выполнение программы. Когда компилятор достигнет точки останова, он перейдет в режим останова. Или в программе, в том месте, где вы хотите остановить выполнение программы, поместите оператор Stop.
    Выполнить одну строку кода в Code Editor Щелкните на кнопке Step Into (Шаг с заходом) панели инструментов Debug (Отладка).
    Проверить значение переменной, свойства или выражения из Code Editor Выделите значение в Code Editor (Редакторе кода), а затем удерживайте над ним мышь.
    Использовать окно Autos для изучения переменной из текущей или предыдущей строки В режиме останова щелкните на меню Debug (Отладка), укажите на Windows (Окна), а затем щелкните на Autos (Видимые).
    Добавить в окно Watch переменную, свойство или выражение В режиме останова выделите значение в Редакторе кода, щелкните на нем правой кнопкой мыши, а затем щелкните на Add Watch (Добавить контрольное значение).
    Отобразить окно Watch В режиме останова щелкните на меню Debug (Отладка), укажите на Windows (Окна), а затем щелкните на Watch (Контрольное значение).
    Открыть окно Command в режиме Immediate В меню Debug (Отладка) укажите на Windows (Окна), а затем щелкните на Immediate (Имитация).
    Переключаться между режимами Command и Immediate окна Command Для переключения в командный режим окна команд, введите >cmd, а затем нажмите на (Enter). Для переключения в режим Immediate (Имитация) окна команд, введите immed, а затем нажмите на (Enter).
    Удалить точку останова Щелкните на точке останова на полосе Margin Indicator в окне Редактора кода или щелкните на команде Clear All Breakpoints (Удалить все точки останова) в меню Debug (Отладка).
    Остановить отладку Щелкните на команде Stop Debugging (Остановить отладку) на панели инструментов Debug (Отладка).
    Вернуться к учебному плану