- •1.3.2 Головне Меню
- •1.3.3 Блок діалогу
- •1.4.1 Зборка й виконання програми.
- •1. Команди керування курсором:
- •2. Команди вставки й видалення:
- •3. Команди обробки блоків тексту:
- •4. Додаткові команди:
- •1.5.1 Пошук парних символів
- •1.4.2 Збереження параметрів настроювання інтегрованого середовища.
- •1.5 Вбудований відладчик
- •1.5.2 Використання убудованого відладчика
- •1.5.3 Покрокове виконання програми
- •1.5.4 Використання відладчика
- •1.5.5 Спостереження перемінних
- •1.5.7 Обчислення й зміна значень
- •1.5.9 Регістри процесора
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.
