Основні прийоми налагодження в середовищі delphi

Найважливішою перевагою динамічного створення компонента є можливість його налагодження з використанням засобів відладчика середовища Delphi. У цьому розділі коротко описані основні прийоми роботи з відладчиком.

Для роботи з вбудованим отладчиком програма повинна компілюватися з встановленими прапорцями в групі Debugging на вкладці Compiler вікна, що відкривається командою Project ► Options.

Для установки безумовної точки зупину помістіть в потрібний рядок текстовий курсор і натисніть клавішу F5 - рядок виділиться кольором (за замовчуванням - червоним). Повторне натискання клавіші F5 видаляє точку зупину. Створити-видалити точку зупинки можна також натисканням миші на службовому полі зліва від рядка. Створена таким способом точка зупинки перериває виконання програми і передає управління середовищі Delphi перед тим, як буде виконаний розташований в рядку оператор програми.

Точку зупину можна зробити умовною. Для цього використовується вікно, яке викликається командою View ► Debug Windows ► Breakpoints або комбінацією клавіш Ctrl + Alt + B. У цьому вікні перераховані всі створені в програмі точки зупину. Виділіть ту з них, яка повинна стати умовної, і натисніть клавішу Enter - з'явиться вікно, показане на рис. 10.3.

Основні прийоми налагодження в середовищі delphi

Мал. 10.3. Вікно управління властивостями точки зупину

В поле Condition вікна введіть умовний вираз з програмними змінними і (або) властивостями компонента, наприклад:

(Progress> 45) and (Progress <55) Точка останова прервет выполнение программы только при истинности условного выражения. В поле Pass count окна можно указать количество проходов точки останова до момента ее срабатывания.

В останніх версіях Delphi точки зупину можна об'єднувати в групи. Для цього потрібно в поле Group ввести ідентифікатор групи, а в полях Enable group і Disable group - ідентифікатори відповідно дозволених і заборонених груп.

У деяких фрагментах програми точки зупину встановлювати не можна. Це стосується тих фрагментів, які пов'язані з отрисовкой компонента: перервана отрисовка відновиться заново після виходу з точки зупинки, яка спрацює повторно, і так до тих пір, поки не буде знята. У цих ситуаціях можна використовувати поля Log message і Eval expression; помістіть в перший довільну текстову рядок, у другу - довільне вираження і скиньте прапорець Break. Точка не перерве виконання програми, а помістить ваше повідомлення і значення обчисленого виразу в спеціальний журнал налагодження, який після прогону програми ви зможете подивитися за допомогою команди View ► Debug Windows ► Event Log або комбінації клавіш Ctrl + Alt + V.

Трасування програми означає покрокове виконання операторів початкового тексту програми після спрацьовування точки зупину. Для трасування використовуються клавіші F7 і F8. Натискання клавіші F7 призводить до виконання операторів поточного рядка тексту програми. Якщо в рядку є оператори виклику підпрограм, поточним рядком стає перший рядок першої підпрограми, що викликається, в іншому випадку - наступний рядок коду. При натисканні клавіші F8 відбувається те ж саме, але робота підпрограм не простежується.

Не розміщуйте в одному рядку коду кілька операторів - це утруднить трасування програми.

Отримання значень змінних і виразів

Після спрацьовування точки зупину і (або) в ході трасування програми можна подивитися значення змінних або виразів з ними. Для цього при роботі з останніми версіями Delphi просто підведіть покажчик миші до ідентифікатора змінної в коді програми - значення змінної з'явиться у вікні оперативної підказки.

СОВЕТЧтоби вікно коду при трасуванні не закривати собою вікно Watch List, «прічальте» останнім до нижнього краю вікна коду. Врахуйте, що причалювання буде успішним тільки в тому випадку, якщо вікно коду не розгорнуті на весь екран.

У модуль System останніх версій Delphi (починаючи з версії 3) включена отладочная процедура Assert, що має такий прототип:

Вона отримує в якості параметра деякий логічне вираження ехрг і, можливо, текстовий рядок msg. Процедура обчислює вираз і, якщо його значення дорівнює False, збуджує виключення EAssertionFailed. У створюваному при цьому вікні буде показано повідомлення msg, а якщо воно опущено - стандартне повідомлення. Крім того, відображається повний маршрут доступу до файлу з вихідним текстом і номер рядка, в якій порушено виняток.

Ця процедура є зручним налагоджувальний інструментом, так як її виконання можна заборонити або дозволити за допомогою глобальної директиви компілятора. Той же ефект дає установка-скидання прапорця Assertions на вкладці Compiler вікна, що відкривається командою Project ► Options.

Схожі статті