JavaRush/Java блог/Архив info.javarush/Руководство пользователя IntelliJ IDEA. Отладчик
theGrass
24 уровень

Руководство пользователя IntelliJ IDEA. Отладчик

Статья из группы Архив info.javarush
участников
Руководство пользователя IntelliJ IDEA. Отладчик - 1

Отладчик

  1. Запуск отладчика

    После того как вы настроите конфигурацию запуска вашего проекта, вы можете запускать его в режиме отладки, нажав Shift + F9

    Руководство пользователя IntelliJ IDEA. Отладчик - 2

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

  2. Полезные клавиатурные сокращения отладчика

    • Установить/снять точку останова - Ctrl + F8 (Cmd + F8 для Mac)
    • Возобновить выполнение программы - F9
    • Перейти к следующей инструкции - F8
    • Перейти внутрь функции - F7
    • Приостановить выполнение - Ctrl + F2 (Cmd + F2)
    • Переключить между просмотром списка точек останова и подробной информацией о выбранной точке - Shift + Ctrl + F8 (Shift + Ctrl + F8)
    • Запустить отладку кода с точки на которой стоит курсор - Shift + Ctrl + F9 (если это внутри метода main())
  3. Умный переход внутрь

    Иногда вам надо при пошаговой отладке перейти внутрь определенного метода, но не первого который будет вызван. В таком случае вы можете нажать Shift + F7 (Cmd + F7 для Mac) чтобы выбрать из предложенного списка метод который вам нужен. Это может сэкономить вам массу времени.

    Руководство пользователя IntelliJ IDEA. Отладчик - 3
  4. Удалить контекст вызова функции

    Если вам нужно «вернуться назад во времени» во время отладки, вы можете сделать это удалив контекст вызова функции. Это сильно поможет если вы по ошибке зашли слишком глубоко. Таким образом вы не откатите глобальное состояние выполнения программы, но как минимум вы вернетесь назад по стеку вызовов функций.

    Руководство пользователя IntelliJ IDEA. Отладчик - 4
  5. Переход к курсору

    Иногда вам надо возобновить выполнение программы и остановиться на какой-то другой строчке кода, не создавая точку останова. Это легко - просто нажмите Alt + F9.

    Руководство пользователя IntelliJ IDEA. Отладчик - 5
  6. Пометить элемент

    Если вы хотите легко видеть какой-то элемент во время отладки, вы можете добавить к нему цветную метку, нажав F11 или выбрав соответствующий пункт в меню вкладки Variables и Watches.

    Руководство пользователя IntelliJ IDEA. Отладчик - 6

    Когда этот элемент появится в списке, вы увидете его метку.

    Руководство пользователя IntelliJ IDEA. Отладчик - 7
  7. Вычислить выражение

    В режиме отладки вы можете вычислить любое выражение, с помощью очень мощного инструмента вызываемого нажатием Alt + F8.

    Руководство пользователя IntelliJ IDEA. Отладчик - 8

    Этот инструмент предоставляет автодополнение кода как и редактор, так что ввести любое выражение будет очень просто.

    Руководство пользователя IntelliJ IDEA. Отладчик - 9

    Если у вас есть какие-то элементы с метками, автодополнение кода покажет вам эти метки чтобы вы могли легко найти нужные элементы и вычислить их значения.

    Руководство пользователя IntelliJ IDEA. Отладчик - 10
  8. Состояние и настройки точки останова

    Если вы хотите поменять какие-то настройки точки останова, вы можете нажать Shift + Ctrl + F8 (Shift + Cmd + F8 для Mac).Во всплывающем окне вы можете ввести нужные вам параметры.

    Руководство пользователя IntelliJ IDEA. Отладчик - 11

    Если у вас какой-то элемент имеет метку, вы также можете использовать эту метку в выражениях.

    Руководство пользователя IntelliJ IDEA. Отладчик - 12

    Чтобы получить список всех точек останова в вашем проекте (с расширенными настройками), снова нажмите Shift + Ctrl + F8 (Shift + Cmd + F8 для Mac).

  9. Точки останова переменной

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

    Руководство пользователя IntelliJ IDEA. Отладчик - 13
  10. Точки останова по событиям

    Еще одна полезная возможность - вычислить определенное выражение в нужной вам строке кода не прерывая выполнение. Для этого вам нужно кликнуть на панель слева от редактируемого кода напротив нужной строки, зажав Shift.

    Руководство пользователя IntelliJ IDEA. Отладчик - 14
  11. Временные точки останова

    Для того чтобы создать точку останова которая сработает только один раз, кликните на панель слева от кода зажав Shift + Alt.

    Руководство пользователя IntelliJ IDEA. Отладчик - 15
  12. Отключить точки останова

    Также очень полезно знать, что любая точка останова может быть быстро отключена по нажатию на панель слева от кода с зажатым Alt.

    Руководство пользователя IntelliJ IDEA. Отладчик - 16
  13. Загрузка изменений и быстрая замена

    Иногда вам нужно внести небольшие изменения в код без прерывания процесса отладки. Так как виртуальная машина Java поддерживает возможность HotSwap, среда разработки в режиме отладки предлагает вам перезагрузить измененные классы когда вы их скомпилируете.

    Руководство пользователя IntelliJ IDEA. Отладчик - 17

    Не забывайте, что функционал HotSwap в Java машине имеет ряд ограничений и не позволяет перезагружать статические поля и методы.

  14. Удаленная отладка

    Последняя вещь в IntelliJ IDEA о которой вам точно нужно знать это удаленная отладка. Удаленная отладка - подключение отладчика к уже запущенной у вас или на другом компьютере Java машине по сетевому порту. Таким образом можно подключить отладчик к серверу приложений, запущенному на сервере.

    Чтобы создать конфигурацию для удаленного запуска, перейдите к редактированию конфигураций (Edit configurations) и нажмите «добавить конфигурацию удаленного запуска» (Remote). Убедитесь что вы указали правильное имя компьютера и порт прежде чем запустить эту конфигурацию.

    Руководство пользователя IntelliJ IDEA. Отладчик - 18
  15. Настройки

    Если вы хотите поменять настройки отладчика по умолчанию, нажмите Settings → Debugger.

    Руководство пользователя IntelliJ IDEA. Отладчик - 19
Оригинал статьи
Комментарии (35)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Demetria
Уровень 22
13 февраля 2022, 12:01
Спасибо за статью! Очень полезная! 👍 Отладчик - лучший друг программиста!)))
Карим Backend Developer
25 июля 2020, 13:11
до 25 лвл не пользовался дебаггером, из за того что он не работал, пользовался sout в некоторых местах чтобы узнать работают ли условия, кстати после захода если нажимать shift + f7 то далеко можно зайти в внутренне устройство каждого метода и класса
Евгений
Уровень 9
29 мая 2020, 20:37
При нажатии Shif+F9 выводится в консоли красным ошибка "Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended". ИДЕА не переходит в режим отладки, а программа просто выполняется в обычном режиме. Как можно исправить?
Jinxman
Уровень 19
15 июля 2020, 12:29
https://stackoverflow.com/questions/54205486/how-to-avoid-sharing-is-only-supported-for-boot-loader-classes-because-bootstra Здесь подробное описание, нужно снять чекбокс с Instrumenting agent, но есть подозрение, что к этой проблеме придётся вернуться на курсе по многопоточности.
Ден Южек
Уровень 18
28 апреля 2020, 07:22
Добрый день. Подскажите может кто-нибудь знает как работать с горячими клавишами при Русской раскладке. Например если включен Русский язык CTRL + C, CTRL + V не работают.
Kazantip
Уровень 32
12 февраля 2020, 18:28
Добрый день ! Столкнулся с такой проблемой - дебагер перестал правильно цепляться к исполняемому коду При этом сама программа нормально отрабатывает. В чем может быть дело ?
30 апреля 2022, 18:31
Приветствую разобрался? У меня тоже на этой задаче дебаггер отлетел ))
Анастасия
Уровень 20
24 января 2020, 15:17
Вот здесь с 40 минуты про режим отладки очень доходчиво для совсем новичков: https://www.youtube.com/watch?v=mcvnjaLqVWQ
23 ноября 2019, 18:10
Ура, вот и до дебагера добрались! Те кто юзал STS на ZX-Spectrum, меня поймут )
Александр
Уровень 23
16 июня 2019, 08:02
Как вернуться на шаг назад в Debug? именно на шаг назад, а не выйти из метода. Нигде не нашёл такую информацию
Даниил Salesforce Developer в Customertimes Master
24 октября 2019, 17:28
самому интересно, но судя по всему такого нет(
difyaaawork
Уровень 9
6 декабря 2019, 15:15
такого нет... вы попробуйте программу работать задом наоборот .... без староних утилит такой возможности нет ... а вот про утилиты я прям хз .... может и есть что то что запоминает порядок хода.... но она скорее всего будет работать как то криво ... ибо у вас в переменных уже есть данные а вы хотите забыть эти данные и вернуться на шаг назад... кароче воспроизвести можно но сложно ...
Дмитрий
Уровень 2
Expert
7 марта 2019, 02:04
полезно, но все эти вызовы запомнить невозможно
Andrey Kovalko
Уровень 20
13 февраля 2019, 11:45
Хочу обратить внимание!!!!!!!!!!!!!! Ставьте breakpoint на строке public static void main!!!!!!!!!!!!!!!!!!!! Затем после запуска команды debug пользуйтесь F7 - таким образом вы пошагово пройдете всю программу с заходом в методы. К сожалению, потратил много времени чтобы это узнать.
21 марта 2019, 17:46
Благодарю дружище! Тоже искал такую возможность)
niko
Уровень 24
1 мая 2019, 16:37
А через Alt+Shift+F7 пройдётся по всем шанхаям классов
Pasha "f0ksia" Kotov
Уровень 7
26 ноября 2019, 14:18
не знаю для чего это, но добавил в закладки))0
Миша Круглов
Уровень 4
12 февраля 2020, 18:59
Благодарю Вас! Выручили. Такая огромная статья, но ответил на мой вопрос Ваш комментарий 😋!
25 августа 2020, 16:55
Норм, если не забывать, что статические блоки инициализируются раньше