JavaRush /Курси /JAVA 25 SELF /Налагодження в IntelliJ IDEA

Налагодження в IntelliJ IDEA

JAVA 25 SELF
Рівень 14 , Лекція 6
Відкрита

1. Баг

У програмістів є свій сленг, хоча багато хто вважає його технічним жаргоном. У будь‑якому разі вам не уникнути знайомства з ним і докладного вивчення. Тож почнімо розбиратися.

Одне з перших слів, з яким ви познайомитеся, — баг, від англійського bug (жук). Означає помилку в програмі: коли програма робить щось не те або не так, чи просто дивно працює.

Якщо ж розробник вважає, що програма працює дивно, але так і задумано, зазвичай кажуть: «це не баг, це фіча». Це породило чимало інтернет‑мемів.

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

Історія слова bug

Найпоширеніша версія походження слова «баг» — ось така легенда.

У вересні 1947 року вчені Гарвардського університету тестували один із перших компʼютерів — Mark II. Компʼютер не працював, і під час перевірки плат вони знайшли метелика, що застряг між контактами електромеханічного реле.

Вилучену комаху приклеїли липкою стрічкою до технічного щоденника і підписали: «баг знайдено й усунено».

Вважають, що саме ця кумедна історія сприяла використанню слова баг для позначення помилки, а термін debug — синонімом усунення помилок.


2. Налагодження програми

Для усунення багів розробники використовують спеціальні програми — налагоджувачі (debugger). Деякі з них уміють налагоджувати навіть машинний код.

Java‑розробники налагоджують свої програми в IDE, наприклад, IntelliJ IDEA, Eclipse і NetBeans. IntelliJ IDEA нині вважають однією з найпотужніших IDE, тож розгляньмо процес налагодження на її прикладі.

IntelliJ IDEA може запустити вашу програму в двох режимах:

Режими запуску програми Піктограма на панелі Гарячі клавіші
Звичайне виконання Shift+F10
Запуск у режимі налагодження Shift+F9

Зі звичайним режимом ви вже знайомі: програма стартує, виконається й завершиться. А режим налагодження відкриває додаткові можливості для дослідження виконання програми.

Режим налагодження

Режим налагодження дає змогу виконувати програму покроково — точніше, построково: рядок за рядком. Ви можете спостерігати значення змінних на кожному кроці (після виконання кожного рядка коду) і навіть змінювати їх під час налагодження.

Щоб опанувати базові прийоми налагодження, потрібно розібратися з трьома речами:

  • Точки зупинки
  • Покрокове виконання
  • Перегляд значень змінних

3. Точки зупинки (Breakpoints)

IDE дає змогу розміщувати в коді спеціальні мітки — точки зупинки (breakpoint). Щоразу, коли програма, запущена в режимі налагодження, доходитиме до рядка, позначеного як breakpoint, вона зупинятиметься.

Щоб встановити breakpoint на певному рядку, достатньо натиснути в IntelliJ IDEA ліворуч від цього рядка. Приклад:

Точки зупинки (Breakpoints)

У результаті рядок буде позначено точкою зупинки (breakpoint), і IntelliJ IDEA підсвітить його червоним кольором:

Точки зупинки (Breakpoints) 2

Повторне клацання мишею у панелі ліворуч від коду зніме встановлений breakpoint.

Також breakpoint можна встановити на поточному рядку за допомогою комбінації клавіш — Ctrl+F8. Повторне натискання Ctrl+F8 на рядку, де вже є breakpoint, видаляє його.


4. Запуск програми в режимі налагодження (debug)

Якщо у вашій програмі є бодай одна точка зупинки, ви можете запускати програму в режимі налагодження (Shift+F9 або «піктограма з жуком»).

Після запуску в режимі налагодження програма виконується як зазвичай. Але щойно вона дійде до рядка коду, позначеного breakpoint, вона зупиниться. Приклад:

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

У верхній частині знімка екрана ви бачите код програми з двома точками зупинки. Програма завмерла на рядку 5 — позначено синьою лінією. Рядок 5 ще не виконано: у консоль нічого не виведено.

У нижній частині екрана ви бачите панелі режиму налагодження: панель Debugger, панель Console (виведення на екран) та набір кнопок для керування налагодженням.

Щоб продовжити виконання програми, натисніть кнопку Resume Program на панелі внизу ліворуч (або клавішу F9).

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

Якщо натиснути цю кнопку (або F9), програма продовжить роботу, доки не зустріне наступну точку зупинки або не завершиться. Ось що ви побачите після натискання цієї кнопки:

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

Програма зупинилася на другій точці зупинки, а в консоль виведено слова Привіт і І — це ознака, що з трьох рядків виведення було виконано лише два.


5. Покрокове виконання

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

Якщо ви хочете виконувати програму рядок за рядком, поставте breakpoint на початку методу main() і запустіть її в режимі налагодження.

Коли програма зупиниться, ви зможете почати її виконання рядок за рядком. Одне натискання клавіші F8 виконує один рядок.

Ось як виглядатиме програма після зупинки й одного натискання клавіші F8:

Запуск програми в режимі налагодження (debug). Покрокове виконання

Перший рядок методу main уже виконався, і поточний рядок — другий. Ви також бачите в нижній частині знімка екрана, що на екран уже виведено слово Привіт.


6. Покрокове виконання із заходом у методи

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

Припустімо, ви покроково виконуєте програму і зараз зупинилися на 4‑му рядку. Якщо натиснете F8, IntelliJ IDEA просто виконає четвертий рядок і перейде до пʼятого.

Покрокове виконання із заходом у методи

А якщо натиснете F7, IntelliJ IDEA зайде всередину методу main2() і покроково виконає його тіло:

Покрокове виконання із заходом у методи 2

Якщо для вас не суттєво, що відбувається всередині методу, натискайте F8. Якщо важливо — натискайте F7, щоб покроково виконати весь код методу.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ