Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
М.у. л.р. Программирование на VB 2005.docx
Скачиваний:
29
Добавлен:
09.11.2018
Размер:
1.76 Mб
Скачать

Средства обнаружения логических ошибок

В Visual Basic для обнаружения логических ошибок имеются следующие средства отладки программ:

  • точка останова. Точка останова - это специальная инструкция в процедуре, на которой работа процедуры приостанавливается;

  • трассировка процедур. Трассировка - это пошаговое (пооператорное) выполнение процедуры, позволяющее контролировать правильность выполнения алгоритма процедуры;

  • отслеживание в диалоговых окна Locals, Quick Watch и Watches значений переменных, выражений, свойств объектов, возможность изменения этих значений в окне Watches.

В Visual Basic имеется три режима работы с программой:

  • режим работы с текстом программы в редакторе кода;

  • режим выполнения, в котором текст программы не доступен для изменения, его можно только просматривать в окне редактора кода;

  • режим прерывания (режим отладки), когда осуществляется приостановка работы программы. Режим позволяет просматривать значения переменных, продолжать или прекращать работу программы, вносить изменения в текст программы.

Кнопки команд, реализующих средства отладки расположены на панели инструментов Debug(отладка). Команды отладки доступны также из меню Debug. Кроме этого выполнить эти команды можно из контекстного меню вызванного в окне редактора кода.

Панель инструментов Debug:

Start/Debugging

(Продолжить)

Запускает программу или продолжает ее выполнение после прерывания

Break All

(Прервать)

Вызывает прерывание программы в нужном месте

Stop Debugging

(Сброс)

Завершает выполнение программы

Breakpoints

(Точка останова)

Запуск окна, Breakpoints с помощью которого устанавливаются и редактируются точки останова

Step Into

(Шаг с заходом)

Осуществляет пошаговое выполнение процедуры с трассировкой вызываемых ею процедур

Step Over

(Шаг с обходом)

Осуществляет пошаговое выполнение процедуры без трассировки вызываемых ею процедур

Step Out

(Шаг с выходом)

Выполняет оставшуюся часть процедуры и останавливается на следующим после вызова процедуры операторе

Run to Cursor

(Выполнять до курсора)

Осуществляет выполнение процедуры от текущего места выполнения до места расположения курсора

Locals

(Окно Locals)

Открывает окно Locals (локальные) с текущими значениями всех локальных переменных процедуры

Immediate

(Окно Immediate)

Открывает окно Immediate (непосредственное выполнение), в котором можно выполнить нужные операторы

Watch

(Окно Watch)

Открывает окно Watch (наблюдение), в котором можно просматривать текущие значения переменных, выражений

QuickWatch

(Быстрый просмотр)

Открывает окно Quick Watch для просмотра текущего значения выражения или переменной, в момент останова работы процедуры

Call Stack

(Стек вызова)

В режиме прерывания открывает диалоговое окно Call Stack со списком всех выполняемых процедур и др.

Delete All Breakpoints

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

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

Если каких-то из вышеуказанных кнопок нет на панели инструментов их можно добавить. Для этого надо щёлкнуть на кнопке «Toolbar Options» >> «Add or Remove Buttons» >> «Customize». В появившемся диалоговом окне перейти на вкладку «Commands». Затем в списке «Categories» выбрать пункт «Debug», после чего можно добавить необходимые кнопки, просто перетащив их из списка «Commands» на панель инструментов «Debug».

Точка останова. Точки останова устанавливаются в том случае когда:

  • требуется остановить выполнения программы в нужном месте и проанализировать значение переменных;

  • нужно выполнить трассировку фрагмента процедуры, для проверки работы алгоритма (устанавливается две точки в начало и конец фрагмента процедуры) и т.д.

Установить точку останова можно командой или указателем мыши, щелкнув по полосе индикатора. Полоса индикатора расположена слева от текста процедуры в окне редактора кода и выделена серым цветом.

Установленные в среде разработки точки останова сохраняются вместе с программой, а в exe-файл не включаются.

Удаление точки останова осуществляется повторным выполнением команды Delete в окне Breakpoints. Несколько точек останова модно удалить одновременно командой Delete All Breakpoints меню Debug.

Можно остановить выполнение программы в нужном месте, не используя точку останова. Для этого следует установить курсор в ту строку, до которой должна выполняться программа, и выбрать команду Run To Cursor меню Debug.

Трассировка процедур. Выполняется в режиме отладки программы и позволяет наблюдать за результатами выполнения каждой строки программы. Является важным средством поиска ошибок и отладки программ. Трассировку можно выполнить с помощью команд Step Into, Step Over и Step Out. Друг от друга команды отличаются правилами работы с вызываемыми процедурами.

Если трассировка программы выполняется командой Step Into (шаг с заходом), то при выполнении оператора вызова процедуры (функции) осуществляется переход в процедуру (функцию) и последующее выполнение команды Step Into приводит к трассировке процедуры.

В отличие от команды Step Into, команда Step Over (шаг с обходом) выполняет вызов процедуры (функции) как единичный оператор, те есть без захода в процедуру (функцию).

В том случае, когда требуется пошаговое выполнение части процедуры до заданного оператора, следует воспользоваться двумя операторами Step Into и Step Out(шаг с выходом). До заданного оператора трассировка должна выполняться командой Step Into. Когда маркер помечает заданный оператор, следует выполнить команду Step Out. Команда Step Out выполнить оставшуюся часть процедуры и возвратиться в точку вызова.

Просмотр значений. Выполняется в режиме отладки и позволяет контролировать значения переменных и выражений в процессе выполнения программы. Visual Basic предоставляет для этого следующие средства:

  • Окно Quick Watch. В окне Quick Watch можно также просмотреть значение одной выбранной переменной (курсор должен находиться на имени переменной). Из окна Quick Watch можно выполнить добавление переменной в окно просмотра Watch (кнопка Add Watch). Окно Quick Watch открывается командой Quick Watch меню Debug.

  • Окно Watch. В окне Watch отображаются контролируемые выражения и их значения. Окно Watch открывается кнопкой Watch панели Debug или командой Add Watch контекстного меню.

Добавить выражение в окно можно:

  • из окна команды Quick Watch кнопкой Add Watch;

  • командой Add Watch меню Debug;

  • перетаскиванием выражения из окна редактора кода в окно Watches;

  • написав имя переменной в окне «Watch» в поле «Name».

  • Выражение в окне Watch можно не только просматривать, но и редактировать. Можно изменить также и текущее значение выражения. Для этого достаточно в окне Watch щелкнуть мышью на изменяемом выражении или значении.

  • Окно Locals. Это окно отображает все локальные переменные выполняемой процедуры и их значения в режиме отладки автоматически. Окно Locals открывается кнопкой Locals панели инструментов Debug.