- •Лабораторная работа № 2
- •Создание исполняемых файлов в среде QuickBasic
- •Создание исполняемых файлов в среде Turbo Pascal
- •Создание исполняемого файла в системе программирования
- •Отладка программных проектов Visual Basic в среде Visual Studio
- •Выполнение больших фрагментов
- •Переключение экранов
- •Вычисление и модификация
- •Модификация переменных
- •Вычисление и модификация в QuickBasic и Code View
- •Редактирование кода во время отладки
- •Использование подсказок в режиме отладки
- •Подсказки при компиляции кода
- •Отладка проекта Visual Basic
Создание исполняемого файла в системе программирования
MS Fortran (предыдущ. лаб. раб.)
Эта система не имеет ИСР. Поэтому после создания файла на исходном языке перед запуском программы необходимо произвести компиляцию и компоновку для получения исполняемого файла.
Пусть в файле <основное имя файла>.for находится программа на языке фортран. Для компиляции и компоновки в системе программирования Ms Fortran версии 5.0 нужно запустить на выполнение команду следующего вида
FL /FPi87 /AL /Fs /G2 <основное имя файла>.for
После этого всегда появляется файл <основное имя файла>.lst, который является протоколом компиляции. Если разного рода ошибок не было, появляется объектный файл <основное имя файла>.obj и исполняемый файл <основное имя файла>.exe.
Если предусматривается отладка программы в отладчике Codeview, то в команду нужно добавить опции /Od /Zi. Тогда команда будет иметь вид
FL /FPi87 /AL /Fs /G2 /Od /Zi <основное имя файла>.for
Решение любой задачи на ЭВМ условно можно разбить на следующие этапы:
1) постановка задачи;
2) разработка алгоритма;
3) составление программ;
4) отладка программ;
3) численное решение задач.
Из перечисленных пунктов пункт "отладка программ" является одним из трудоемких. Исправление синтаксических ошибок, выявленных компилятором, не является отладкой. Его можно отнести к процессу составления программ.
Отладка программы - это процесс устранения ситуаций, которые вызывают неправильное выполнение программы.
Причинами ненормального поведения программы могут быть неполадки алгоритма, неточная реализация алгоритма, незаметные ошибки, допущенные при составлений программ.
Технические приемы отладки основаны на наблюдении за поведением программы и интуитивных предположениях.
Для отладки программу нужно прогонять в различных режимах с различными исходными данными. При этом нужно фиксировать отклонения результатов счета от ожидаемых результатов и искать причины, вызывающие такие отклонения. Для этой цели обычно проверяют промежуточные результаты счета и проверяют последовательность выполнения операторов. Одним словом, ключевым элементом отладки является управляемое выполнение программы:
- остановка программы в заданных точках;
- прохождение ее шаг за шагом:
- просмотр состояние переменных и выражений.
В системах программирования обычно имеется сервисное средство для отладки, известное как "символьный отладчик", который может работать либо как отдельная программа (CodeView для Ms Fortran), либо в составе ИСР (QuickBasic, Turbo Pascal). Для отладки в QuickBasic и Turbo Pascal нужно исходный код отлаживаемой программы загрузить в рабочее окно. В CodeView нужно запустить его следующей командой DOS:
CV <основное имя файла>.exe .
Средства отладчика: трассировка, точки прерывания, контрольные точки и контрольные выражения.
Трассировка (Tracing) позволяет следить за последовательностью выполнения операторов (при отладке наименьшим выполняемым элементом является строка).
Точка прерывания (Breakpoint) - это место в программе, в котором приостанавливается выполнение, для проверки значения переменных и проверяемых выражении, чтобы видеть, что происходит в программе. Для установки или удаления точки прерывания в QuickBasic и Code View предназначена команда DebugToggle Breakpoint или клавиша F9. Строки, на которых установлены точки прерывания, окрашиваются в реверсивный цвет. Для удаления всех точек прерывания служит команда DebugClear All Breakpoints.
В Turbo Pascal задание точек останова производится командой Toggle Breakpoint в локальном меню окна редактирования или нажатие клавиш Ctrl+F8, а повторная операция отменяет установку.
Прерывание программы без точек останова можно произвести нажав клавиши Ctrl+Break. Как и в случае обычной точки останова можно затем продолжать выполнение программы.
Контрольное условие (Wathcpoint) - это логическое или арифметическое выражение, останавливающее выполнение программы, когда оно принимает значение "истина" (или ненулевое значение).
Наблюдаемое выражение (Watch Expression) - контрольные выражения позволяют наблюдать за значениями переменных или выражений в программе при выполнении.
Трассировка (Tracing) позволяет контролировать последовательность выполнения операторов (строк). Системы обычно располагают несколькими вариантами трасссировки для различных целей.
Пошаговое выполнение в QuickBASIC и Code View - (F8, F10). При каждом нажатии на клавишу F8 выполняется один оператор (строка) программы. При нажатии F10 подпрограмма выполняется как один оператор. В Turbo Pascal F8 или RunStep Over и F7 или RunTrace Into соответственно.
"Оживленная" трассировка (Trace On) приводит как бы к "оживлению" выполнения программы; система начинает непрерывное медленное пошаговое выполнение. Каждый оператор в момент выполнения подсвечивается.
Активизация этой команды заставляет QuickBASIC записывать 20 последних обработанных строк программы. Это свойство можно также включить вызовом команды "History On", который позволяет осуществить трассировку в обратном и прямом направлении в пределах 20 последних операторов, выполненных в программе.
При включений этих команд можно прервать выполнение программы, нажав Ctrl+Break, а затем с помощью клавиш Shift+F8 пошагово вернуться к любому из 20 последних выполненных операторов. По той же последовательности можно продвинуться вперед, нажимая Shift+F10.
В CodeView аналогичные действия выполняются командами RunAnimate; RunHistory; затем Ctrl+Break и Undo - "откат" назад Reply - повторение.
Окно просмотра (окно Watch) - это окно, открывающееся в верхней части экрана при вызове команды "Add Watch" и "Watchpoint". Оно позволяет следить за состоянием контрольных условий и значениями переменных и выражений при выполнении программы.
В Turbo Pascal открыть окно просмотра (окне Watches) можно также командой WindowWatch. В Turbo Pascal к тому же можно открыть окно вывода (окно Output). Оно открывается командой DebugOutput. Настроить размеры и расположение этих окон можно аналогично окну редактирования.
Для установки контрольного условия предназначена команда DebugWatchpoint.
Для вывода в окне Watch фактических значений переменных или выражений предназначена команда DebugAdd Watch, а в Turbo Pascal - команда DebugWatchAdd Watch или клавиша Ctrl+F7.
Команда Set Next Statement изменяет последовательность выполнения программы, передавая управление отмеченному курсором оператору.
Команда Restart приводит программу в начальное состояние для повторного запуска. В Turbo Pascal этому соответствует команда RunProgram reset.
Стек вложенных процедур (Calls) показывает последовательность вызовов процедур и функции, которые привели к текущему состоянию (В Turbo Pascal DebugCall Stack). Чтобы посмотреть текст любой процедуры или функции из списка в стеке, нужно выбрав соответствующее имя нажать Enter.
