Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Sreda_BC.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆

1.5.2 Використання убудованого відладчика

Щоб відладчик працював, треба включити відладочную інформацію у виконуваний файл. Це ж необхідно для того, щоб скористатися зовнішнім відладчиком, наприклад таким, як Turbo Debugger. Опція, що керує включенням відладочной інформації представлена на мал.11, знаходиться в меню Options|Debugger|Source Debugging: За замовчуванням ця опція включена.

Малюнок 11

Відладчик зв'язує скомпільований об'єктний код з кожним рядком вихідного тексту програми. Можна виконувати програму пошагово, спостерігаючи за зміною значень перемінних і виражень.

1.5.3 Покрокове виконання програми

Покрокове виконання програми - це процес виконання одного оператора (точніше, одного рядка програми) за один крок.

#include <iostream.h>

#include <stdio.h>

void main()

{ int inch = 0; // inch - дюйм

cout << "inches";

cin >> inch;

cout << inch;

cout << " in = ";

cout << inch*2.54;

cout << " cm\n"; }

Для покрокового виконання програми з використанням убудованого відладчика системи Borland C++ 3.1 натисніть клавішу F7. Помітимо, що рядок програми, що містить main (void) у вікні редагування, буде виділений. Це початок виконання програми. Помітимо також, що рядки

#include <stdio.h>

void main()

будуть пропущені, тому що директиви препроцесора й оголошення прототипу функції не генерують коду й автоматично пропускаються відладчиком. Це ж стосується операторів оголошення змінних. Натискання клавіші F7 еквівалентно вибору пункту меню Run|Trace into. Натисніть F7 кілька разів. Виділений рядок пересувається від рядка до рядка. Виділяється той рядок, що буде виконуватися при наступному кроці. Коли ми досягнемо строки

cout << "inches";

при наступному натисканні F7 відкриється вікно з файлом iostream.h. Виділений рядок буде знаходитися у функції, що перевантажує операцію <<. Якби ми використовували функцію printf() для висновку значень, ми пройшли б цей рядок за один крок. Це зв'язано з тим, що функція printf() не містить відладочної інформації, у той час як функція-операція перевантаження << містить відладочную інформацію (вона компілюється при перегляді файлу, що підключається, iostream.h).

При всій користі покрокового виконання програми це може бути досить тривалим процесом у великій програмі чи при наявності циклів. У відладчику передбачена можливість рухатися по програмі великими кроками. Першу можливість - виконання програми до рядка, у якій знаходиться курсор можна реалізувати, установивши курсор у необхідний рядок і натиснувши F4 чи вибравши пункт меню Run|Go to cursor.

Друга можливість - установити крапку переривання (breakpoint) перемістивши курсор у вікні редагування в той рядок, у якому хочете призупинити виконання програми. Потім виберіть пункт меню Debug|Toggle breakpoint. Еквівалентна комбінація клавіш - Ctrl-F8. Рядок буде виділена яскравим кольором. Якщо встановлена одна чи кілька крапок переривання, почніть виконання програми (Run|Run чи Ctrl-F9). Виконання програми зупиниться на першій крапці переривання, що зустрілася. Оператори в рядку, у яких знаходиться крапка переривання, виконуватися не будуть. Продовжити виконання програми можна в покроковому режимі чи знову натиснувши Ctrl-F9 чи F4. При виборі Debug|Breakpoints... на екрані з'явиться вікно діалогу

Малюнок 12

вибравши в якому кнопку Edit одержимо ще одне вікно діалогу, у якому можна модифікувати умови, і лічильник (count):

Малюнок 13

Якщо виконання програми надалі недоцільно (знайдена помилка чи потрібно повернутися в початок програми), треба вибрати пункт меню Run|Program Reset чи Ctrl-F2.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]