назад | содержание | вперед
Отладка программ
Как правило, отладка — это проверка работы и исправление ошибок программистом перед передачей проекта на тестирование.
Инструментарии отладки позволяет проконтролировать избранные участки кода приложения для локализации ошибки, выполняя приложение по шагам, останавливаясь в точках останова, дает возможность проверить значения переменных, свойств объектов и другую интересующую информацию и выяснить, таким образом, источник ошибки.
В набор инструментария отладки Visual Basic 6 входят такие основные инструменты, как:
Панель инструментов Debug (рис. 10.4) активизируется при выборе из меню View (Вид) команды Toolbars (Панели инструментов), а затем значения Debug (Отладка).
Рис. 10.4. Панель инструментов Debug, используемая для отладки приложения
На панели инструментов Debug находятся кнопки, обеспечивающие работу по отладке приложения. Назначение этих кнопок описано в табл. 10.3.
Таблица 10.3. Кнопки панели инструментов Debug
Кнопка |
Название |
Назначение |
|
Start/Continue (Продолжить) |
Запускает программу или продолжает ее выполнение после прерывания |
|
Break (Остановка) |
Вызывает прерывание программы в необходимом месте (без использования точек останова) |
|
End(Завершение) |
Завершает выполнение программы |
|
Toggle Breakpoint (Установить точку останова) |
Устанавливает точку останова на текущей строке кода |
|
Step Into (Шаг с заходом в процедуры) |
Осуществляет пошаговое выполнение процедуры, включая также вызываемые ею процедуры |
|
Step Over (Шаг без захода в процедуры) |
Осуществляет пошаговое выполнение процедуры без трассировки вызываемых ею процедур |
|
Step Out (Шаг с выходом из процедуры) |
Выполняет пошаговое выполнение текущей процедуры до выхода из нее |
|
Locals Window (Окно Locals) |
Открывает диалоговое окно Locals для контроля значений переменных |
|
Immediate Window (Окно Immediate) |
Открывает окно Immediate для ввода и выполнения команд |
|
Watch Window (Окно Watch) |
Открывает диалоговое окно Watches для просмотра выражений, включенных в список наблюдения |
|
Quick Watch (Быстрый просмотр) |
Открывает окно Quick Watch для просмотра выражения и значения, которое оно возвращает в данный момент в точке останова программы или на определенном шаге при пошаговом запуске программы |
|
Call Stack (Стек вызовов) |
Открывает окно Call Stack, в котором представлен список выполняемых процедур |
С остальными инструментами вы сможете познакомиться при рассмотрении процесса отладки. Откройте любое из ранее разработанных приложений, например приложение для изучения записи/чтения данных из файла. Установите точку останова в процедуре записи данных. Для этого щелкните кнопкой мыши, установив указатель в сером вертикальном поле редактора кода напротив интересующей строки, или выполните команду Toggle Break-point (Установить точку останова) меню Debug (Отладка). При этом в сером вертикальном поле рядом с выбранной командой устанавливается жирная точка (рис. 10.5), остановка выполнения программы произойдет именно в этом месте кода.
Рис. 10.5. Точка останова в окне редактора кода
При запуске программы в точке останова выполнение программы приостанавливается и для контроля работы приложения можно использовать весь отладочный инструментарий: просматривать значения переменных и выражений при позиционировании маркера на выбранной переменной или выражении (рис. 10.6).
Рис. 10.6. Просмотр значения выражения в точке останова
Для более тщательного контроля работы приложения можно использовать окна просмотра: Immediate (Немедленное выполнение), Watches (Наблюдение), Locals (Локальные), Quick Watch (Быстрый просмотр). Call Stack (Стек вызовов).
Кроме прямого ввода и выполнения команд, окно Immediate служит для выяснения значения переменных и выражении. Для этого необходимо выполнить команду ? с указанием интересующего выражения, как это показано на рис. 10.7. Значение выражения выводится в следующей строке этого же окна.
Рис. 10.7. Окно Immediate для ввода команд и получения результатов
При работе с окном Immediate удобно использовать объект Debug и его метод print. В режиме запуска метод Debug. Print выводит текстовое сообщение в окне Immediate. Синтаксис этого метода очень простой:
Debug.Print StringMessage где StringMessage — текст выводимого в окно Immediate сообщения.
В окне Locals можно просмотреть все переменные и их значения, используемые в данный момент приложением (рис. 10.8)
Основным окном для просмотра значений выражений является окно Watches (рис. 10.9). В этом окне можно проконтролировать любое выражение из списка введенных для проверки.
Рис. 10.8. Окно Locals для контроля за переменными
Рис. 10.9. Окно Watches для контроля за значениями выражений
Список проверяемых выражений пополняется в диалоговом окне Add Watch (рис. 10.10), открываемом командой Add Watch (Добавить наблюдение) контекстного меню редактора кода или одноименной кнопкой на панели инструментов Debug (Отладка). Для добавления выражения в список контролируемых необходимо ввести его в текстовое поле Expression (Выражение) этого окна.
Замечание
Если в тексте кода выделить выражение, то при вызове окна Add Watch это выражение по умолчанию вставляется в поле Expression.
Рис. 10.10. Окно Add Watch для добавления контролируемого выражения
Область Context диалогового окна Add Watch позволяет установить область видимости переменных, наблюдаемых в выражении. Раскрывающийся список Procedure (Процедура) задает видимость внутри процедур, а список Module (Модуль) — внутри программных модулей.
Переключатель Watch Type (Тип просмотра) определяет, как Visual Basic реагирует на наблюдаемое выражение. При установке опции Watch Expression (Выражение наблюдения) значение выражения отображается в диалоговом окне Watches в режиме прерывания. Опция Break When Value Is True (Приостановить при равенстве выражения значению Истина) автоматически задает режим прерываний и обращение к контролю выражений при условии равенства выражения значению True или ненулевому значению для числовых выражений. Опция Break When Value Changes (Приостановить при из менении значения выражения) аналогична опции Break When Value Is True, но приложение входит в режим прерывания при изменении значения выражения.
В дополнение к окну Watches, для просмотра выражений можно использовать окно Quick Watch (Быстрый просмотр) для быстрого доступа к значению выражения (рис. 10.11). Для этого окна не требуется вводить список контролируемых выражений, а достаточно выделить интересующее выражение в тексте кода и вызвать окно Quick Watch одноименной кнопкой на панели инструментов Debug,
Для контроля выполняемых процедур используется окно Call Stack (Стек вызовов), в котором показаны все вызванные и активные в данный момент процедуры (рис. 10.12).
Рис. 10.11. Окно Quick Watch для быстрого просмотра
Рис. 10.12. Окно Call Stack для просмотра вызванных процедур
Рис. 10.13. Место вызова процедуры, выбранной на рис. 10.12
Из окна Call Stack можно перейти к коду программы (рис. 10.13), откуда был выполнен вызов выбранной в списке процедуры, с помощью кнопки Show (Показать). На рис. 10.13 показано место вызова процедуры, выбранной в окне Call Stack (рис. 10.12).
назад | содержание | вперед