Міністерство освіти і науки України
НУ „Львівська політехніка”
Кафедра ЕОМ
ЗВІТ
Про виконання лабораторної роботи №2
Засоби вiдлагодження програм в середовищi Турбо-Паскаль
Кохалик Р.В.
(Студент)
ІКТА КІ-17
(Група)
Мітьков В.С.
(Керівник лаб. Занятть)
Львів 2003
Лабораторна робота №2
Засоби вiдлагодження програм в середовищi Турбо-Паскаль
Мета роботи вивчення основинх можливостей інтегрованого середовища Турбо Паскаль по відлагодженню програм.
Теоретичний вступ Iнтегроване середовище Турбо-Паскаль надає користувачевi зручний iнструментар для вiдлагодження програми та пошуку помилок на етапi її реалiзацiї, який базується на можливостi зупинити виконання програми у встановленому користувачем мiсцi i переглянути значення, якi мають змiннi на даний момент. Пiсля цього реалiзацiя програми може бути продовжена до точки наступної зупинки чи до кiнця, або в текст програми вносяться коректуючi змiни i процес її виконання повторюють спочатку.
Спосiб реалiзацiї програми вибирають через роздiл меню [Run]. Можливi такi режими виконання:
Run Ctrl-F9
Program reset Ctrl-F2
Go to cursor F4
Trace into F7
Step over F8
Всi виконуючi режими Run, Go to cursor, Trace into, Step over мають однакову схему початку роботи - якщо програма не була вiдкомпiльована або якщо в її текст внесено якiсь змiни, то викликається компiлятор i, у випадку успiшної компiляцiї, починається виконання програми.
Пiсля кожної зупинки програми при її вiдлагодженнi можна змiнити режим виконання на бiльш зручний.
Ржим [Run] (Виконання) - здiйснює повну реалiзацiю програми – вiд точки запуску до кiнця або до заданого мiсця зупинки.
Режим Program reset ( Скидання програми) - вiдмiняє поточний сеанс вiдлагодження програми, звiльняє пам'ять, яку вона займала, закриває всi задiянi в програмi файли, але не скидає у вiкнi спостереження значення змiнних.
Режим [Go to cursor] (Виконувати до курсора) - здiйснює виконання програми вiд мiсця запуску до рядка з операторами, на якому розташова ний курсор. Перед запуском режиму необхiдно перейти у вiкно редактора програми i встановити курсор в тому мiсцi програми, яке потребує вiдлагодження.
Даний режим дозволяє встановлювати точки зупинки програми. Щоб забезпечити зупинку у виконаннi програми кожен раз, коли вона досягає конкретного оператора, треба перший раз зупинити її в цiї точцi за допомогою F4 (Go to cursor), а наступнi зупинки забезпечити встановленням у цьому мiсцi точки переривання клавiшами Ctrl-F8 (режим Toggle breakpoint меню Debug).
Режим [Trace into] (Трасування) - забезпечує пооператорне виконання програми - зупинка пiсля виконання кожного рядка програми. Якщо зустрiчається звертання до пiдпрограми, то здiйснюється трасування операторiв пiдпрограми.
Режим [Step over] (Покрокове виконання) - є аналогом попереднього режиму, але розглядає виконання пiдпрограм як один крок програми i зупиняється на операторi, наступному за викликом пiдпрограми.
Аналiз поточних значень елементiв програми та встановлення точок зупинки здiйснюється режимами меню [Debug]:
Evaluate/modify Ctrl-F4
Watches
Toggle breakpoint Ctrl-F8
Breakpoints ...
Режим [Evaluate/modify] (Обчислення/модифiкацiя) - дозволяє побачити бiжуче значення змiнної, обчислити значення заданого виразу, а також помiняти значення змiнної.
При виклику режиму на екранi з'являється вiкно з трьома рядками:
Expression - для вводу виразу, значення якого обчислюється;
Result - висвiтлюється значення виразу;
New value - для вводу нового значення змiнної.
Режим Evaluate/modify може використовуватись при вiдлагодженнi програми i автономно. В першому випадку - у виразi можна посилатись на змiннi програми - будуть використанi значення, якi вони мають на даний момент. В другому випадку - режим використовують як калькулятор, задаючи константнi вирази. Наприклад 0.4563*2.4.
Pежим [Watches] (Спостереження) - викликає появу додаткового вiкна меню з пiдрежимами:
Add watch Ctrl-F7
Delete watch
Edit watch
Remove all watches
Пiдрежим [Add watch] (Доповнити вiкно спостереження) - дозволяє через додаткове вiкно запиту [Watch expression] задавати змiнну або вираз для контролю їх значень. При першому виклику пiдрежиму в нижнiй частинi екрану створюється вiкно спостереження [Watches], в якому вiдображається значення, яке має змiнна в даний момент виконання програми. Якщо знiннiй ще не присвоєно нiякого значення, то виводиться - Unknown identifier - невизначена змiнна. При наступних звертаннях вiкно доповнюється введеними змiнними та виразами.
Задання змiнної чи виразу для спостереження можна також здiйснити комбiнацiєю клавiш Ctrl-F7. При цьому у вiкно запиту [Watch expression] автоматично заноситься iм'я змiнної, яка вiдмiчена курсором у вiкнi редагування програми. Перехiд мiж вiкнами здiйснюється клавiшами Alt-[номер вiкна] або F6. Якщо активним є вiкно спостереження, то вiкно [Watch expression] можна викликати, натиснувши клавiшу Insert.
Пiдрежим [Delete watch] (Витерти з вiкна спостереження) – забирає вказанi елементи з вiкна [Watches]. Бiльш просто це можна зробити, якщо перейти у вiкно спостереження, встановити курсор на потрiбний рядок i натиснути клавiшу Delete.
Пiдрежим [Edit watch] (Редагування виразу перегляду) - дозволяє змiнити форму виразу у вiкнi спостереження.
Пiдрежим [Remove all watches] (Зняти всi спостереження) – витирає всi елементи з вiкна [Watches].
Режим [Toggle breakpoint] (Перемикання точки зупинки) – встановлює на бiжучому рядку точку зупинки програми. У вiкнi редагування такий рядок вiдзначається iншим кольором.
Режим [Breakpoints...] - виводить вiкно з iнформацiєю про встановленi точки переривання, дозволяє вiдмiнити окремi з них або зняти всi.
Щоб продовжити виконання програми пiсля вiдлагоджувальної зупинки, треба запустити один iз режимiв виконання. При цьому здiйснюється перевiрка, чи при зупинцi програми в її текст були внесенi якiсь змiни.
Якщо так - то виводиться попередження:
Source hаs been modified. Rebuild? (Програма змiнена. Перезапустити?)
У випадку позитивної вiдповiдi, вiдбувається перекомпiляцiя програми.
Вiдповiдь No продовжить виконання програми з мiсця зупинки без врахування внесених змiн.
Порядок виконання роботи
По виданому завданню набираю, відлагоджую та викону програму.
Текст програми
Program 2;
Uses crt;
Var y: real; i, n: integer;
Begin
Clrscr;
Writeln (‘---------------‘);
Readln (n);
Writeln (‘---------------‘);
For i: =-n to n do
Begin
y:=i*i;
Writeln (‘|x=’,i,’ ‘,’y=’,y’|’);
End;
Writeln (‘---------------‘);
Readln;
End.
Приреалiзацiї програми використовую допустимi вiдлагоджувальнi режими. Наприклад:
зупиняю виконання перед початком основного циклу;
заношу у вiкно спостереження значення контрольних змiнних;
виконую декiлька покрокових проходжень циклу, фiксуючи значення контрольних змiнних;
встановлюю точку зупинки на останньому операторi циклу;
виконую решту проходжень циклу, аналiзуючи значення в кiнцi кожної iтерацiї;
завершити виконання програми.
Блок-схема програми