Что нельзя делать в окне watch во время отладки программы java

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Отладчик

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

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

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

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

Умный переход внутрь

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Удалить контекст вызова функции

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Переход к курсору

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Пометить элемент

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Вычислить выражение

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Состояние и настройки точки останова

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

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

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

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Точки останова по событиям

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Временные точки останова

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Отключить точки останова

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Загрузка изменений и быстрая замена

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

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

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

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Настройки

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Оригинал статьи

Источник

8 советов по отладке для пользователей IntelliJ IDEA, о существовании которых вы возможно не знали

Но давайте будем честными. Обычно мы используем только опцию точки останова. При большом желании мы можем использовать условную точку останова.

Но знаете что, отладчик IntelliJ IDEA имеет множество мощных и передовых функций, которые полезны для более эффективной и простой отладки.

Чтобы помочь вам, мы составили список советов и приемов от наших разработчиков в Lightrun. Мы надеемся, что эти советы помогут вам быстрее находить и устранять ошибки.

1. Используйте точки останова по исключениям

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

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

Для этого вам нужно определить пакет, в котором находятся файлы вашего проекта. Это поможет вам сфокусировать анализ поведения вашего кода.

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

2. Используйте условия в ваших точках останова

Это один из самых малоиспользуемых инструментов в отладчиках и, возможно, один из самых эффективных. Используйте условия, чтобы сузить круг проблем гораздо проще и сэкономить время и усилия по поиску проблем. Например, в цикле вы можете определить точку останова, которая остановится только при фактической ошибке, избавляя вас от ручного обхода циклов, пока вы не столкнетесь с проблемой!

В приведенном ниже цикле вы можете видеть, что точка останова остановит сервис, когда значение идентификатора агента равно нулю. Таким образом, вместо того, чтобы генерировать исключение с null указателем, мы сможем проверить текущее состояние VM (виртуальной машины) до того, как это произойдет.

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Lightrun предлагает условия для всех действий: снимки, логи и т. д. Подробнее читайте здесь.

3. Включите меню «Internal Actions» для разработки собственных плагинов.

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

4. Используйте функцию «Analyze Thread Dump».

Мы рекомендуем использовать функцию IntelliJ «Analyze Thread Dump» из-за ее удобных возможностей просмотра, которые упрощают анализ дампа. «Analyze Thread Dump» автоматически обнаруживает трассировку стека в буфере обмена и мгновенно помещает ее со ссылками на исходный код. Эта возможность очень полезна при просмотре дампов стека из журналов сервера, потому что вы можете мгновенно перейти к соответствующим файлам, как при локальной трассировке стека.

Чтобы получить доступ к функции, перейдите в меню «Analyze». IDE поддерживает активацию этой функции динамически, когда IDE обнаруживает трассировку стека в буфере обмена.

5. Используйте отладчик потока.

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

6. Используйте точку наблюдения за полем (Field Watchpoints)

Она может быть очень полезно, когда вы исследуете и обнаруживаете, что поле имеет неправильное значение, и вы не знаете, почему. Наблюдение за этим полем может помочь определить причину неисправности.

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

7. Отладка микросервисов с помощью подключаемого модуля Lightrun.

Плагин Lightrun IntelliJ позволяет добавлять журналы, снимки состояния и показатели производительности во время работы сервиса. Это означает, что вы можете добавлять инструменты в производственную и промежуточную среды. Вы можете отлаживать монолитные микросервисы, Kubernetes, K8, Docker Swarm, ECS, Big Data Workers, бессерверную систему и многое другое. Поддержка нескольких экземпляров доступна через механизм тегов.

Плагин Lightrun полезен для экономии времени, поэтому вместо многократных итераций локального воспроизведения сред, перезапусков и повторных развертываний вы можете выполнять отладку прямо в производственной среде.

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Когда дело доходит до мозгового штурма, 1 + 1 = 3. А когда дело доходит до решения сложных проблем отладки, вам понадобятся все умственные способности, которые вы можете использовать.

Работа с кем-то позволяет по-новому взглянуть на проблему по-другому и может выявить детали, которые вы упустили.

Или вы оба дополняете друг друга, пока не достигнете решения. Просто задавая друг другу вопросы и опровергая некоторые предположения друг друга, вы придете к новым выводам, которые помогут вам найти проблемы.

Вы также можете использовать друг друга для «Rubber Duck Debugging», или, как мы любим это называть, «Cheetah debugging».

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

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

Вы можете найти список онлайн сообществ разработчиков Java здесь.

Как мы уже упоминали в подсказке № 7, плагин Lightrun IntelliJ позволяет разработчикам отлаживать живые микросервисы, не прерывая их. Вы можете безопасно добавлять журналы и показатели производительности в производственную и промежуточную среду в режиме реального времени по запросу. Запросите демонстрацию и узнайте больше.

Источник

Debug in IDEA: переменные

1. Watch

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Интеллектуальная система Intellij IDEA прямо над кодом отображает значения важных переменных. В нашем случае это переменная-массив data

Также в нижней части скриншота у нас открыта вкладка Debugger (а не Console ), и в ней отображаются все известные переменные (со своими значениями) в данном месте программы.

Если вы нажмете F8 10 раз, то выполните 5 витков цикла (одно нажатие для заголовка цикла и одно для тела цикла). Тогда вы получите такой результат:

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Кстати, если свернуть содержимое массива, можно увидеть еще несколько полезных переменных:

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

2. Изменение значений переменной

Кстати, если вы хотите протестировать, как ваша программа поведет себя при определенных значениях переменных, вы можете просто поменять значения любых переменных прямо во время работы программы (в режиме отладки).

Для этого нужно кликнуть правой кнопкой мышки на имени переменной или нажать F2 :

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

3. Выполнение фрагмента кода

Также в любой момент работы программы вы можете выполнить произвольный код. Это делается с помощью комбинации кнопок Alt + F8 или пункта контекстного меню:

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

У вас появится специально окно, в котором вы можете написать любой код, и в нем можно использовать переменные, известные в текущий момент выполнения программы!

Можно вызывать любые методы: скажем, заставить программу вывести какой-то текст на экран, не прерывая ее работы! Пример:

Источник

Всё, что вы хотели знать об отладке в IntelliJ IDEA

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Sep 20, 2020 · 8 min read

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Отладка — это один из самых важных этапов процесса разработки. И дело не только в том, что устранение ошибок занимает, вероятно, большую часть времени: она также особенно необходима при создании бизнес-логики, написании алгоритмов и тестировании кода.

Давайте начнем с основ. Существуют 4 типа точек останова в IntelliJ IDEA.

Точка останова для строки кода

Останавливает приложение в момент достижения им строки кода, содержащей данную точку. Этот тип точки останова может быть добавлен только в выполняемую строку. Если она содержит лямбда-выражение, то вы можете выбрать: либо установить регулярную точку, либо останавливать программу только при вызове лямбда-выражения.

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Точка останова для метода

Ос т анавливает приложение при входе/выходе из указанного метода или одной из его реализаций и позволяет проверять условия этого процесса. Данный вид точки останова может сильно замедлить процесс отладки, так что использовать его следует аккуратно и только в случае необходимости.

Точка останова для исключений

Останавливает приложение при выбрасывании Throwable.class или его подклассов.

Точка останова при доступе к полю класса

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

Для создания точки останова используйте “горячие” клавиши Ctrl + F8. Тип точки останова (для строки кода, для метода или для доступа к полю класса) будет зависеть от того, где вы ее создаете. Для просмотра списка всех точек останова используйте Ctrl + Shift + F8.

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

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

Suspend (Приостановка)

Определяет, следует ли остановить выполнение приложения в момент достижения точки останова. Имеет два возможных значения: All/Thread. При выборе all происходит приостановка всех потоков, когда какой-либо из них достигает контрольной точки. При выборе thread приостанавливается лишь один поток, достигший этой точки.

Condition (Условие)

Эта опция позволяет задать условие, подлежащее проверке каждый раз при достижении точки останова. Если условие возвращает значение true, то выполняется заданное действие, в противном же случае контрольная точка пропускается.

В качестве условия вы можете использовать:

Опции логирования

При достижении точки останова в консоль может быть выведено следующее:

2.Трассировка стека для текущего окна Frame. Это удобно, если вы намерены проверить, какие методы были вызваны до момента достижения точки останова.

Remove once hit (Удаление точки останова при ее достижении)

Определяет, следует ли удалить точку останова из проекта после того, как она была достигнута.

Disable until hitting the following breakpoint (Отключение точки останова до момента достижения другой точки)

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

Filters (Фильтры)

Эта IDE от JetBrains позволяет также настраивать работу с точками, отфильтровывая классы/экземпляры/методы и выполняя остановку только в нужных вам местах.

В вашем распоряжении следующие типы фильтров:

Field access/modification (Доступ к полю класса/изменение поля класса)

Pass count (Количество проходов)

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

Caught/uncaught exception (Обработанное/необработанное исключение)

Лучшие практики использования точек останова

Для логирования отладки используйте точки останова, но не инструкцию System.out.println.

Прибегайте к помощи “горячих” клавиш для добавления точек останова, так вы сэкономите довольно много времени.

Использование “горячих” клавиш открывает прекрасные перспективы более продуктивного программирования. Не забывайте про них.

Объединяйте точки останова в группы.

Вы можете создать группу точек останова, например в том случае, если вам нужно отметить точки для решения какой-либо особой задачи. В диалоговом окне Breakpoints (Ctrl+Shift+F8) выберите сначала точку, которую необходимо добавить в группу, а затем — Move to a group.

Выясните исходную причину критических ошибок.

Не используйте точки останова для метода без необходимости.

Эти точки могут чрезвычайно замедлить выполнение кода, что приведет к значительным потерям времени.

Не удаляйте точки останова полностью.

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

Добавьте описание к точке останова.

Это поможет вам вспомнить, почему вам нужна именно эта точка из числа многих других.

Пошаговое выполнение программы

Степпинг (stepping)— это пошаговое выполнение программы.

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Рассмотрим каждый из них подробнее.

Step over (F8) — Шаг с обходом

Данная команда позволяет перешагнуть через текущую строку кода и перейти к следующей. Реализация методов пропускается, и вы переходите к следующей строке текущего метода.

Step into (F7) — Шаг с заходом

Благодаря этому шагу вы переходите внутрь метода для просмотра его кода. Эта опция подходит для тех случаев, когда вы не уверены, что метод возвращает правильное значение.

Step out (Shift + F8) — Шаг с выходом

При помощи этой команды вы выходите из текущего метода и переходите к вызывающему методу.

Run to cursor(Alt + F9) — Выполнение до курсора

Данная команда продолжает выполнение приложения до текущей позиции курсора.

Force step over (Shift+Alt+F8) — Принудительный шаг с обходом

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

Drop frame — Возврат к предыдущему фрейму

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

Resume program (Ctrl + F9) — Возобновление программы

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

Окно инструментов отладки

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

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

В этом окне вы можете видеть созданные объекты, свойства, исключения, значения и т. д. Данная опция удобна для тех случаев, когда вам нужно: 1) убедиться в том, что все свойства инициализированы правильно; 2) уточнить, какие параметры получил метод; 3) посмотреть на трассировку стека исключений.

Лучшие практики пошагового выполнения программы

Step Into (шаг с заходом) применим даже для методов из внешних библиотек.

Иногда внешние библиотеки также могут содержать ошибки. Отладка внешней библиотеки может помочь вам обнаружить неверный код и сообщить о нем ее разработчикам. Или может возникнуть другая проблема. Например, если метод из внешней библиотеки возвращает неожиданное значение, войдите в него для выяснения причины подобного поведения. Возможно, это произошло из-за ошибки в методе объекта equals/hashcode и т. д. или по причине переопределения некоторых классов данной библиотеки в вашем проекте.

Используйте Show Execution Point (Отображение точки выполнения)

Если вы потеряли место, где остановилось выполнение кода, используйте Show Execution Point (Alt + F10) для перехода к достигнутой точке останова.

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

Вычисление выражений

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

Для вычисления выражения используйте клавиши Alt + F8 или кнопку Evaluate.

Что нельзя делать в окне watch во время отладки программы java. Смотреть фото Что нельзя делать в окне watch во время отладки программы java. Смотреть картинку Что нельзя делать в окне watch во время отладки программы java. Картинка про Что нельзя делать в окне watch во время отладки программы java. Фото Что нельзя делать в окне watch во время отладки программы java

Лучшие практики вычисления выражений

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

Вычислитель выражений может выполнять все.

Будьте аккуратнее с потоками данных (Streams).

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

Отладка иногда является весьма раздражающим и длительным, но при этом необходимым процессом в работе каждого разработчика. И IntelliJ IDEA предоставляет возможности и опции для того, чтобы сделать ее более удобной, простой и эффективной. Можно любить или не любить процесс отладки, но это не меняет то обстоятельство, что он является значимым этапом разработки.

Напоследок поделюсь самым важным практическим советом:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *