
- •Лабораторная работа № 2
- •Создание исполняемых файлов в среде QuickBasic
- •Создание исполняемых файлов в среде Turbo Pascal
- •Создание исполняемого файла в системе программирования
- •Выполнение больших фрагментов
- •Переключение экранов
- •Вычисление и модификация
- •Модификация переменных
- •Вычисление и модификация в QuickBasic и Code View
- •Отладка программных проектов Visual Basic в среде Visual Studio
- •Редактирование кода во время отладки
- •Использование подсказок в режиме отладки
- •Подсказки при компиляции кода
- •Отладка проекта Visual Basic
Выполнение больших фрагментов
Для прогона программы до строки, где находится курсор используется команда F7, а в Turbo Pascal - RunGo To Cursor или клавишу F4.
Переключение экранов
Чтобы вывести экран пользователя, нажмите клавиши F4, а в Turbo Pascal - Alt+F5. Чтобы вернуться, нажмите любую клавишу или щелкните "мышью".
Вычисление и модификация
Отладчик имеет средство, позволяющее в любой момент вычислять выражения и изменять на этапе выполнения значения переменных.
Чтобы вычислить выражение в Turbo Pascal, выберите команду DebugEvaluate/ Modify или нажмите клавиши Ctrl+F4. Отладчик выводит диалоговое окно Evaluate and Modify (Вычисление и модификация). По умолчанию слово в позиции курсора в текущем окне редактирования выводится в поле Expression (Выражение). Можно отредактировать это выражение, набрать другое выражение или выбрать вычисляемое ранее выражение из списка протокола.
Когда вы нажимаете Enter или щелкаете "мышью" на командной кнопке Evaluate, текущее значение выражения в поле Expression показывается в поле Result.
Модификация переменных
Во время отладки в Turbo Pascal с помощью диалогового окна Evaluate and Modify можно изменить значение переменной. Для этого нужно ввести переменную в поле Expression, затем в поле New Value набрать новое значение.
Вычисление и модификация в QuickBasic и Code View
Они имеют более скромные средства. Можно использовать команду DebugAdd Watch, а QuickBasic также - окно непосредственного выполнения (окно Immediate).
Отладка программных проектов Visual Basic в среде Visual Studio
Из книги :
Самоучитель Visual Basic 2008 / Д. А. Шевякова, А. М. Степанов, А. Н. Дукин [Под ред. А. Ф. Тихонова]. – СПб.: БХВ-Петербург, 2008. – 592 с.: ил. + Дистрибутив (на DVD)
Ошибки при работе над проектом, особенно сложным и большим, неизбежны. Поэтому при создании проекта важным этапом работы является отладка приложения. Отладка является непременным этапом работы над любым проектом. Как правило, отладка — это проверка работы и исправление ошибок программистом перед передачей проекта на тестирование. Для выполнения этой работы в Visual Basic существует набор специальных инструментов.
Ошибки в программе могут быть синтаксическими или смысловыми. Синтаксические ошибки — наиболее очевидные. Они возникают, если код написан без соблюдения правил языка программирования. Эти ошибки обнаруживаются компилятором, который выдает соответствующее сообщение. В Visual Basic сообщения отображаются в окне Output (Вывод). В них указаны номер строки, файл, в котором обнаружена ошибка, и краткое ее описание. Обнаружение и исправление таких ошибок является достаточно легким и быстрым.
Смысловые ошибки являются более серьезными. Они возникают, когда синтаксически код корректен, но выполняемые этим кодом действия отличаются от предполагаемых вами. Смысловые ошибки не обнаруживаются компилятором. Именно для обнаружения ошибок данного вида и используется отладчик.
В набор инструментария отладки Visual Basic 2008 входят такие основные инструменты, как:
панель инструментов Standard (Стандартная), а также Debug (Отладка) с кнопками выполнения команд для отладки приложения;
окно Immediate Window (Окно непосредственного выполнения), предназначенное для непосредственного ввода команд, требующих немедленного выполнения;
окно Watch (Наблюдение), служащее для просмотра значений выражений, включенных в список просмотра;
окно Locals (Локальные переменные), предназначенное для просмотра значений переменных;
редактор кода со встроенными возможностями просмотра переменных, констант, свойств, выражении при отладке приложения в точках останова и пошаговом выполнении приложения;
окно Call Stack (Стек вызовов) для просмотра вызванных, но незавершенных процедур.
На стандартной панели инструментов располагаются кнопки (табл. 1), использование которых позволяет осуществлять пошаговую отладку приложения. По умолчанию в главном окне программы Visual Basic эта панель всегда присутствует.
Таблица 1. Используемые для отладки кнопки панели инструментов Standard
Кнопка |
Название |
Назначение |
|
|
Start Debugging (Запустить отладку) |
Запускает программу или продолжает ее выполнение после прерывания |
|
|
Break All (Остановить) |
Вызывает прерывание программы в необходимом месте (без использования точек останова) |
|
|
Stop Debugging (Остановить отладку) |
Завершает выполнение программы |
|
|
Step Into (Вход в процедуру) |
Осуществляет пошаговое выполнение процедуры, включая также вызываемые ею процедуры |
|
|
Step Over (Перешагивание) |
Осуществляет пошаговое выполнение процедуры без трассировки вызываемых ею процедур |
|
|
Step Out (Выход из процедуры) |
Выполняет пошаговое выполнение текущей процедуры до выхода из нее |
На панели инструментов Debug (Отладка) находятся кнопки, обеспечивающие работу по отладке приложения. Назначение этих кнопок описано в табл. 2. Панель инструментов Debug (Отладка) активизируется при выборе из меню View (Вид) команды Toolbars (Панели инструментов), а затем — Debug (Отладка).
Таблица 2. Кнопки панели инструментов Debug
Кнопка |
Название |
Назначение |
||
|
Show Next Statement (Показать следующую инструкцию) |
Осуществляет переход к следующей инструкции |
||
|
Immediate (Непосредственное выполнение) |
Открывает окно Immediate Window |
||
|
Locals (Локальные) |
Открывает окно Locals |
||
|
Watch (Наблюдение) |
Открывает окно Watch |
||
|
Call Stack (Стек вызовов) |
Вызывает окно Call Stack |
||
|
Breakpoints (Точки останова) |
Вызывает окно Breakpoints |
С остальными инструментами вы сможете познакомиться при рассмотрении процессе отладки. Откройте любое из ранее разработанных приложений, например, приложение для изучения элементов управления Listview и Treeview. Добавьте точку останова в функции заполнения списка. Для этого щелкните кнопкой мыши, установив указатель в сером вертикальном поле редактора кода напротив интересующей строки, или нажмите клавишу <F9>. При этом в сером вертикальном поле рядом с выбранной командой появляется жирная точка, сама строка выделяется красным цветом, остановка выполнения программы произойдет именно в этом месте кода.
Visual Basic обеспечивает управление поведением точки останова с помощью двух ее свойств— Hit Count и Condition, которые можно задать с помощью диалогового окна Breakpoints (Точки останова) или команды Breakpoint (Точка останова) контекстного меню, открываемого щелчком правой кнопки мыши на строке с установленной точкой останова.
Свойство Hit Count позволяет задать количество проходов через точку останова при выполнении программы перед тем, как программа будет прервана в этом месте. По умолчанию, отладчик прерывает работу программы каждый раз, когда встречается точка останова. Вы можете настроить свойство Hit Count так, чтобы выполнение программы прерывалось при каждой второй встрече точки останова или каждой десятой, и т. д. Это может быть полезно, поскольку некоторые ошибки не появляются при первом исполнении итерации, вызове функции или обращении к переменной.
Свойство Condition представляет выражение, которое определяет, что программа будет прервана в точке останова только при удовлетворении заданного в нем условия.
Точку останова можно устанавливать не только в тексте программы, но и в окне Call Stack (Стек вызовов), в точке вызова процедуры. Это может быть особенно полезно при отладке рекурсивных процедур (процедур, которые вызывают сами себя). Если вы прервали выполнение программы после определенного числа вызовов, можете использовать окно Call Stack (Стек вызовов), чтобы установить точку останова на одном из предыдущих вызовов, из которого еще не было возращено значение. Отладчик встретит точку останова и прервет выполнение программы при выходе из этого вызова.
При запуске программы в точке останова выполнение программы приостанавливается и для контроля работы приложения можно использовать весь отладочный инструментарий: просматривать значения переменных и выражений при позиционировании маркера на выбранной переменной или выражении.
Для более подробного контроля над выполнением приложения можно применять окна просмотра: Immediate Window (Окно непосредственного выполнения), Watch (Наблюдение), Locals (Локальные переменные), Quick-Watch (Быстрый просмотр), Call Stack (Стек вызовов).
Кроме прямого ввода и выполнения команд, окно Immediate Window (Окно непосредственного выполнения) можно использовать для выяснения значения переменных и выражений. Для этого необходимо выполнить команду ? с указанием интересующего выражения. Значение выражения выводится в следующей строке этого же окна.
При работе с окном Immediate Window (Окно непосредственного выполнения) удобно использовать объект Debug и его метод Print. В режиме запуска метод Debug.Print выводит текстовое сообщение в окно Immediate Window (Окно непосредственного выполнения). Синтаксис этого метода очень простой:
Sub Print(ByVal message As String)
где message — текст выводимого в окно Immediate Window (Окно непосредственного выполнения) сообщения.
В окне Locals (Локальные переменные) можно просмотреть все переменные и их значения, используемые в данный момент приложением.
Основным окном для просмотра значений переменных является окно Watch (Наблюдение). В этом окне можно просмотреть значение любой переменной или выражения из списка введенных для контроля. Окно Watch (Наблюдение) доступно только в режиме отладки.
Для того чтобы добавить в список просматриваемых значений новую переменную или выражение, введите имя переменной или выражение в поле Name, Кроме того, переменную или выражение можно перетащить в окно Watch (Наблюдение) из окна редактора кода или окна Locals (Локальные переменные).
Формат числа, просматриваемого с помощью окна Watch (Наблюдение) или других окон, может быть десятичным или шестнадцатеричным. Для перехода к шестнадцатеричному коду необходимо щелкнуть правой кнопкой мыши в окне и выбрать команду Hexadecimal Display (Отображение шестнадцатеричного кода) открывшегося контекстного меню.
В дополнение к окну Watch (Наблюдение) для просмотра выражений можно использовать окно QuickWatch (Быстрый просмотр) для быстрого доступа к значению выражения. Для этого окна не требуется вводить список контролируемых выражений, достаточно выделить интересующее выражение в тексте кода и вызвать окно QuickWatch (Быстрый просмотр) с помощью одноименной команды меню Debug (Отладка) или нажатием комбинации клавиш <Shift>+<F9>.
Для контроля выполняемых процедур предназначено окно Call Stack (Стек вызовов), в котором показаны все вызванные и активные в данный момент процедуры.
Из окна Call Stack (Стек вызовов) можно перейти к коду программы, откуда был выполнен вызов выбранной в списке процедуры, с помощью двойного щелчка на имени выбранной процедуры.