Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная 2 ОТЛАДКА И КОМПИЛЯЦИЯ С ИСПОЛЬЗОВ...doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
774 Кб
Скачать
☆

Создание исполняемого файла в системе программирования

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 Fort­ran), либо в составе ИСР (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.