Розділ 7. Налагоджування програм у KDevelop

Запуск програми під керуванням програми для налагоджування

Після того, як запуск програми буде налаштовано (див. Запуск програм), ви зможете запускати програму під керуванням інструмента налагоджування: скористайтеся пунктом меню ВиконанняНалагоджувальний запуск або натисніть комбінацію клавіш Alt+F9. Якщо ви знайомі з роботою gdb, результат буде той самий, що і після запуску gdb з вказаним виконуваним файлом у налаштуваннях запуску з наступною командою Run. Це означає, що якщо програмою буде десь викликано abort() (наприклад, якщо оператором контролю буде виявлено помилку) або якщо буде виявлено помилку сегментування, інструмент налагоджування зупинить роботу програми. З іншого боку, якщо програма зможе виконати роботу до кінця (правильно чи неправильно), інструмент налагоджування не зупинятиме її роботу, аж доки ця робота не завершиться сама. У такому разі вам можуть знадобитися встановлені ще до запуску програми точки зупинки у всіх рядках коду, де інструмент налагоджування має зупиняти роботу програми. Встановити такі точки зупинки можна встановленням курсора у відповідному рядку з наступним вибором пункту меню ВиконанняВстановити/зняти точку зупинки або використанням пункту контекстного меню (викликається клацанням правою кнопкою миші) Встановити/зняти точку зупинки.

Запуск програми у зневаднику переведе KDevelop у інший режим: всі кнопки інструментів на периметрі головного вікна програми буде замінено на відповідні кнопки налагоджування, а не редагування. Визначити режим, у якому працює програма можна за верхньою правою частиною вікна: там ви побачите вкладки з назвами Перегляд, Налагоджування та Код. Натискання заголовків цих вкладок надає змогу перемикатися між трьома режимами. У кожного з режимів є власний набір інструментів, налаштувати їхній перелік можна у такий само спосіб, у який ми налаштовували інструменти режиму Код у розділі Інструменти та панелі перегляду.

Після зупинки інструмента налагоджування (у точці зупинки або у точці виклику abort()) ви зможете вивчити різноманітні дані щодо роботи програми. Наприклад, на наведеному вище зображенні нами вибрано інструмент Стек викликів у нижній частині (приблизний еквівалент команд «backtrace» та «info threads» у gdb), отже показано список запущених потоків виконання ліворуч (у нашому прикладі таких потоків 8) та спосіб переходу до поточної точки зупинки праворуч (у нашому прикладі main() викликано run(); список був би довшим, якби ми зупинилися у функції, викликаній з run()). Ліворуч можна бачити локальні змінні, зокрема поточний об’єкт (об’єкт, на який вказує змінна this).

Після зупинки ви можете діяти у декілька способів: наказати виконати поточний рядок (F10, команда «next» gdb), увійти до функції (F11, команда «step» у gdb) або виконати інструкції до кінця функції (F12, команда «finish» gdb). На кожному з етапів виконання KDevelop оновлюватиме значення змінних, показані ліворуч. Ви також можете просто навести вказівник миші на частину коду, наприклад, назву змінної, і KDevelop покаже поточне значення та запропонує зупинити виконання програми під час наступної зміни значення змінної. Якщо ви знайомі з gdb, ви також можете натиснути кнопку інструмента GDB у нижній частині вікна і отримати змогу вводити команди gdb безпосередньо, наприклад, для того, щоб змінити значення змінної (у поточній версії середовища, здається, не передбачено іншого способу).