Debug в IDEA

Java Syntax Pro
20 уровень , 4 лекция
Открыта

1. Баг

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

Одним из первых слов, с которым вы познакомитесь, будет слово баг, от английского bug (жук). Это слово обозначает ошибку в программе, когда программа делает что-то не то или не так. Или просто странно работает.

Однако, если программист считает, что программа, хоть и работает странно, но именно так он и задумывал, обычно заявляет что-то типа «это не баг, это фича». Что породило кучу интернет-мемов.

В принципе причина неправильной работы может быть любая: ошибка в логике программы, опечатки, неверная архитектура программы, вплоть до проблем в компиляторе. В любом случае программистам нужно править и настоящие баги, и любые другие «недочеты», которые есть в программе.

История слова bug

Самой распространённой версией происхождения слова баг является такая легенда.

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

Извлеченное насекомое было вклеено скотчем в технический дневник и сопровождено надписью, мол «баг найден и устранен».

Считается, что именно эта смешная история и послужила началом использования слова баг как обозначения ошибки, а слово дебаг (debug) стало синонимом устранения ошибок.


2. Отладка программы

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

Java-программисты для отладки (debugging) своих программ используют IDE. Такие как Intellij IDEA, Eclipse и Net Beans. IntelliJ IDEA на сегодняшний день является самой мощной IDE, поэтому мы рассмотрим процесс отладки на ее примере.

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

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

С обычным режимом работы вы уже знакомы: программа запустится, отработает и завершится. А вот режим отладки несет для вас немало сюрпризов.

Режим отладки

Режим отладки позволяет пошагово выполнить всю вашу программу. Или правильнее будет сказать, построчно: строка за строкой. При этом вы можете наблюдать значения переменных на каждом шаге программы (после выполнения каждой строки кода). И даже менять их значения!

Чтобы минимально овладеть искусством отладки программы, вам нужно изучить три вещи:

  • Точки остановки
  • Пошаговое выполнение
  • Просмотр значений переменных

3. Точки остановки (Break Points)

IDE позволяет вам разместить в коде специальные метки — точки остановки (break point). Каждый раз, когда программа, запущенная в режиме отладки, будет доходить до строки, отмеченной как break point, она будет становиться на паузу.

Чтобы поставить break point на определенной строке, нужно просто кликнуть в IDEA слева от этой строки. Пример:

Точки остановки (Break Points)

В результате строка будет отмечена точкой остановки (break point), и Intellij IDEA подсветит ее красным цветом:

Точки остановки (Break Points) 2

Повторный клик мышкой на панели слева от кода снимет установленную break point.

Также break point можно просто поставить на текущей строке с помощью горячей комбинации клавиш — Ctrl+F8. Повторное нажатие Ctrl+F8 на строке, где уже есть break point, удаляет ее.


4. Запуск программы в режиме отладки (дебага)

Если у вас в программе есть хотя бы одна точка остановки, вы можете запускать программу в режиме отладки (Shift+F9 или «иконка с жуком»).

После запуска в режиме отладки программа выполняется как обычно. Но как только она дойдет до выполнения строки кода, помеченного break point, встанет на паузу. Пример:

Запуск программы в режиме отладки (дебага)

В верхней половине скриншота вы видите код программы с двумя точками остановки. Программа замерла на строке 5 — отмечена синей линией. Строка 5 еще не выполнилась: в консоль еще ничего не выводилось.

В нижней половине экрана вы видите панели режима отладки: панель Debugger, панель Console (вывод на экран), а также набор кнопок для режима отладки.

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

Запуск программы в режиме отладки (дебага) 3

Если нажать такую кнопку (или F9), программа продолжит работу, пока не встретит следующую точку остановки или не завершится. Вот что мы увидим после нажатия такой кнопки:

Запуск программы в режиме отладки (дебага) 4

Программа остановилась на второй точке остановки, а в консоль выведены слова Привет и И – признак того, что из трех строк вывода на экран выполнились только две.


5. Пошаговое выполнение

Если ваша программа работает в режиме отладки, вы также можете выполнять ее пошагово: один шагодна строчка. Для пошагового выполнения есть две горячие клавиши: F7 и F8: каждая из них приводит к выполнению текущей строки кода. Но сначала вам нужно будет все же остановить вашу программу с помощью break point.

Если вы хотите выполнять вашу программу построчно, вам нужно поставить break point в самом начале метода main() и запустить ее в режиме отладки.

Когда программа остановится, вы сможете начать построчное ее выполнение. Одно нажатие клавиши F8 – одна строка.

Вот как будет выглядеть наша программа после остановки и нажатия клавиши F8 один раз:

Запуск программы в режиме отладки (дебага).Пошаговое выполнение

Первая строка метода main уже выполнилась, и текущая строка — вторая. Вы также можете видеть в нижней части скриншота, что на экран уже вывелось слово Привет.


6. Пошаговое выполнение с заходом в методы

Если у вас есть в программе собственные методы, и вы хотите, чтобы в режиме отладки ваша программа не просто выполнялась пошагово, но и заходила внутрь ваших методов, для «захода в метод» вам нужно нажимать не клавишу F8, а клавишу F7.

Допустим, вы пошагово выполняете программу и сейчас остановились на 4-й строке. Если вы нажмете кнопку F8, IDEA просто выполнит четвертую строку и перейдет к пятой.

Пошаговое выполнение с заходом в методы

А вот если вы нажмете F7, IDEA будет пошагово выполнять метод main2():

Пошаговое выполнение с заходом в методы 2

Все очень просто. Если вам не сильно важно, что и как происходит внутри метода, вы нажимаете F8, если важно — F7 и пошагово выполняете весь его код.

Комментарии (249)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Vivate Уровень 15
11 августа 2025
Привет! Также горячие клавиши для режима отладки в IDEA под macOS: Запуск и управление отладкой Запустить с отладкой ⌃ + D (Control + D) Остановить отладку ⌘ + F2 (Command + F2) Перезапустить с отладкой ⌃ + ⌘ + R (Control + Command + R) Шаги выполнения Шаг с заходом (Step Into) F7 Шаг с обходом (Step Over) F8 Шаг с выходом (Step Out) ⇧ + F8 (Shift + F8) Продолжить выполнение (Resume) ⌥ + ⌘ + R (Option + Command + R) Точки останова (Breakpoints) Поставить/убрать точку останова ⌘ + F8 (Command + F8) Включить/выключить точку останова ⌥ + ⌘ + F8 (Option + Command + F8) Показать все точки останова ⌘ + ⇧ + F8 (Command + Shift + F8) Просмотр данных Вычислить выражение (Evaluate Expression) ⌥ + F8 (Option + F8) Показать текущее значение переменной ⌘ + ⇧ + F8 (Command + Shift + F8) Перейти к курсору (Run to Cursor) ⌥ + F9 (Option + F9) Принудительно завершить программу ⌘ + ⇧ + F2 (Command + Shift + F2)
Patriek Уровень 15
6 августа 2025
А что так все лайки просят??? Можно и мне))) Хотя бы за то, что я законспектировал все лекции и уже исписал 50 листов тетради А4 😏
Anonymous #3298962 Уровень 16
3 августа 2025
кек)
Gris Hiver Уровень 1
1 августа 2025
А я не буду ставить лайки для достижения. Пишите интересные комментарии, тогда и просить не надо будет)
Андрей Уровень 6
29 июля 2025
Господа и дамы, можно лайков для ачивки накидать мне сюда? Буду премного благодарен и каждому отправлю плюсиков в карму!
Lisa Уровень 39
27 июля 2025
Ладно, я тоже хочу ачивку, буду местным попрошайкой
Shershuly Уровень 6
25 июля 2025
Накидайте лайков для ачивки плиииз♡
hidden #3594511 Уровень 8
4 июля 2025
А как просматривать значения переменных то? (Ответ написал ниже, но следующая лекция как раз о этом)
hidden #3594511 Уровень 8
4 июля 2025
Пошаговая инструкция Чтобы просмотреть значения переменных в отладчике IntelliJ IDEA, нужно: Установить точку останова в коде: нажать на левый край рядом с номером строки или использовать сочетание клавиш (Ctrl+F8). Запустить отладчик: нажать на значок отладки на панели инструментов или использовать сочетание клавиш (Shift+F9). Когда программа достигнет точки останова, отладчик приостановит выполнение на этой строке. Открыть представление «Variables» или «Watches» в окне инструмента отладчика. Найти его можно по пути «View» → «Tool Windows» → «Debugger» или с помощью сочетания клавиш (Alt+5). В представлении «Variables» или «Watches» будет список переменных и их текущие значения. Чтобы просмотреть значение переменной, нужно нажать на неё в представлении — это расширит переменную и отобразит дополнительную информацию, например, её тип и текущее значение.
Probably not playing Уровень 13
26 июня 2025
Накидайте лайков для достижения пажолуйста😏
Nova Уровень 7
20 июня 2025
Ребят я уже давно жду когда будет тема с пояснениями системы этих "public static final/void" и прочее прочее, что это такое, с чем его едят, как они работают что означают, есть что нибудь на эту тему? или может будет в будущем?