Это может помочь выявить и устранить дефекты приложений. В этой статье автор будет использовать Eclipse, широко используемый инструмент разработки, для отладки приложений Java. Однако представленные здесь методы отладки в основном универсальны и применимы также к IDE NetBeans. Мы сосредоточимся на среде выполнения.
Прежде чем начать, я рекомендую вам прочитать статью «Ярлыки Eclipse», которая принесет вам много удобства. В этой статье используется версия Eclipse Juno (Eclipse 4.2), прежде чем начать, я хотел бы дать вам 3 совета!
Не используйте System.out.println в качестве инструмента отладки. Включите уровни ведения журнала для всех задействованных компонентов и используйте анализатор журналов для чтения журналов.
1. Условная точка останова
Если вы не знаете, как добавить точку останова, просто нажмите на левую панель (перед номером строки), и точка останова будет создана. В интерфейсе отладки в представлении «Точки останова» будут перечислены все созданные точки останова. Мы можем добавить к нему логическое условие, то есть точка останова будет активирована, и если логическое условие истинно, точка останова будет выполнена, в противном случае она пропустит выполнение.
2. Точка останова исключения
В представлении точки останова есть кнопка отметки J! Мы можем использовать эту кнопку, чтобы добавить точку останова исключения Java. Например, если мы хотим, чтобы программа по-прежнему могла продолжать отладку при обнаружении исключения NullPointerException, мы можем использовать эту кнопку, чтобы добавить точку останова исключения!
3. Точки мониторинга
Это очень удобная функция, которая останавливает выполнение программы и позволяет проводить отладку при доступе или изменении выбранного свойства. Выберите переменную класса в представлении «Структура» и выберите «Переключить точку наблюдения» в контекстном меню. Точка наблюдения за атрибутом будет создана, и все точки наблюдения будут отображаться в виде списка в представлении «Точки останова».
4.Оценка/инспекция
Нажмите Ctrl+Shift+D или Ctrl+Shift+I, чтобы отобразить значение выбранной переменной или выражения. Мы также можем добавить постоянные точки наблюдения к переменной или выражению. Когда программа отлаживается, эти точки наблюдения будут отображаться в представлении «Выражение».
5. Изменить значение переменной.
Во время отладки мы можем изменять значения переменных. Сначала выберите переменную, затем войдите в представление «Переменные» и введите значение в соответствующий столбец «Значение» в соответствии с типом переменной.
6. Остановить выполнение в основной функции.
В настройках запуска/отладки в диалоговом окне редактирования конфигурации есть вкладка «Основная», и мы можем установить флажок «Остановить в основной». Если этот флажок установлен, при отладке Java-программы на основе основного метода программа остановит выполнение на первой строке основного метода.
7. Переменные среды
Вместо добавления переменных среды в свойства системы мы можем легко добавить их в диалоговом окне «Редактировать конфигурацию».
8. Переместить в кадр
Это также одна из моих любимых функций. Во время отладки можно вернуться к началу кадра стека вызовов и значения переменных вернутся в начало. Отрегулируйте глубину стека в соответствии с откатом. Основная цель этой функции — быстро вернуть состояние всех переменных в состояние, когда метод начал выполняться. Затем вы можете повторно выполнять его снова и снова. что вы можете отлаживать несколько раз, когда это необходимо. Однако в процессе выполнения также могут возникнуть некоторые побочные эффекты, например, данные, вставленные в базу данных, не могут быть удалены.
9. Фильтрация распределения
Когда мы входим в метод (F5), мы также можем получить доступ к его внешней библиотеке (например, java.*). Эта библиотека может нам не понадобиться, поэтому мы можем добавить фильтр на вкладку «Перференция», чтобы исключить этот пакет.
10. Вход, выход и возвращение
Оставляю это на последний пункт, это то, что необходимо понять (и желательно освоить) во время отладки:
F5 — Enter: переход к следующему шагу. Если в текущей строке есть вызов метода, элемент управления перейдет на первую строку вызванного метода для выполнения.
F6 — Выпрыгнуть: перейти на следующую строку. Если в текущей строке есть вызов метода, он перейдет непосредственно на следующую строку для выполнения. Он не войдет в тело вызванного метода.
F7 — Возврат: выйти из текущего метода и продолжить выполнение.
F8 — переход к следующей точке останова для выполнения.