Как использовать отладку в Intellij Idea. Краткий конспект.

R5AM, Александр Ящук, Москва, 2016г.
На главную


Отладка - это этап разработки для локализации и устранения ошибок. Для локализации нужно выяснить по какому пути проходит программа и знать значения переменных в определённые моменты работы приложения. Нужно выставить точки останова - в левом поле редактора напротив требуемой строчки кода ЛКМ (Левая Кнопка Мыши), можно использовать Ctrl-F8 для точки останова в строке с курсором.

Типы точек останова:

1. Line breakpoint - точка , связанная с заданной строкой кода, ставится ЛКМ.
2. Temporary Line breakpoint - точка, которая сразу удалится после достижения, ставится ЛКМ+Alt, иконка с циферкой 1.
3. Method breakpoint - точка, срабатывающая при входе в метод или выходе из метода. Позволяет проверять условия входа и выхода. Добавляется зелёным плюсом в окне всех точек, указывается класс и метод, иконка с четырьмя точками.
4. Exception breakpoint - точка срабатывает при возникновении определённого исключения, к коду не привязана. Добавляется зелёным плюсом в окне всех точек, иконка с молнией.
5. Field watchpoint - позволяет реагировать на любое изменение или доступ к переменной экземпляра. Добавляется зелёным плюсом в окне всех точек, иконка с минусом, нужно указать полное имя класса и имя поля.
6. JavaScript/PHP breakpoint - можно точку выставить прямо в HTML коде.

Горячие клавиши:

Запустить отладку Shift-F9
Остановить отладку Ctrl-F2
Перезапустить отладку Ctrl-F5
Закрыть окно отладчика Ctrl-F4
Выполнить до следующей точки останова или до этой же точки в цикле или, если точек дальше по коду нет, то закончить отладку и дать завершиться приложению в обычном режиме F9



Шаг без захода в методы F8
Шаг с заходом в методы F7
Шаг с заходом в методы без фильтрации шагов библиотек, конструкторов и т.п. Alt-Shift-F7
Шаг с выходом из текущего метода Shift-F8
Выполнить до курсора Alt-F9
Установить или снять точку останова в строке с курсором Ctrl-F8
Вычислить выражение, например условие цикла Alt-F8
Удалить все точки останова - в окне параметрв точек (Ctrl-Shift-F8) Alt-Del
Просмотр одной/всех точек остановок, изменить параметры точек
  -- F4 закроет окно с точками останова и перейдёт в коде на точку останова.
  -- Enabled - временно отключить точку останова.
  -- Suspend - политика приостановки работы частей приложения при достижении точки останова, если нет галки, то никакие потоки не приостанавливаются:
        --- All - останавливать все потоки,
        --- Thread - останавливать только поток, в котором находится точка останова,
        --- Make Defaul - все вновь создаваемые точки останова будут иметь такую же политику приостановки.
  -- Condition - условие, при котором сработает точка останова, например a = = 1. Можно вставить метод,возвращающий boolean
  -- Log message to console - сообщение в консоли при достижении точки останова.
  -- Evalute and log - при достижении точки останова посчитать выражение (например, a + 5 и результат отобразить в консоли.
  -- Remote once hit - точка останова удаляется при достижении.
  -- Disabled until selected breakpoint is hit - отключить точку останова до любого исключения или до достижения другой точки останова:
        --- Disable again - после достижения опять отключить
        --- Leave enabled - после достижения оставить включённой
  -- Instance filters - ограничивает достижение точки останова только для определённых экземпляров объектов.
  -- Class filters - указать классы, в которых точка будет срабатывать, и классв, в которых точка не срабатывает.
  -- Pass count - пропустить определённое количество раз прохождение точки останова.
Ctrl-Shift-F8
Комментарии, объявления полей и методов, и пустые строки не подходят для точек останова, на строках с объявлением переменной без присвоения значения не будет срабатывать точка остановки.

Слева внизу окно "Frames" со стеком вызовов классов в виде иерархии. Можно переходить по стеку вызовов и смотреть с какими аргументами вызывались методы.

В центре внизу окно "Variables" с переменными, которым присвоено значение. При изменении значения у переменной изменяется цвет (на синий) у самой переменной в окне "Variables".

Справа внизу окно "Watches" для наблюдением за значением определённых добавленных в это окно переменных или выражений, без необходимости перемещаться по древовидным структурам в окне "Variables". Можно добавлять имена переменных зелёным плюсом или Alt-Insert.

Можно вносить изменения в код, затем перекомпилить изменённый класс Ctrl-Shift-F9 и продолжить отладку без её полного перезапуска.

Можно включить в настройках дебагинга отображение значений переменных прямо в строках кода: "Show values inline".

Можно быстро отключить точку останова если щёлкнуть по ней ЛКМ с Alt - точка получит зелёную метку.

Есть возможность удалённой отладки при подключении к удалённой JVM.

Есть возможность отлаживать WAR-файлы с использованием встроенных или внешних серверов приложений.





На главную
К началу страницы