Рубрики
Без рубрики

Удаленная отладка с IntelliJ IDEA

Узнайте, как отладить удаленный java-процесс с помощью IntelliJ

Автор оригинала: Kyle Doyle.

Удаленная отладка с IntelliJ IDEA

1. Введение

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

В этом учебнике мы посмотрим на удаленную отладку с помощью JetBrains IntelliJ IDEA. Давайте сначала подготовим пример приложения, изменив СПМ.

2. Настройте СПМ

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

Кроме того, IntelliJ IDEA предоставляет наши параметры JVM как часть конфигурации :

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005

2.1. Параметры СПМ

Помимо конфигурации Java Debug Wire Protocol (JDWP) jdwp-транспорт dt_socket – Мы видим серверные , приостановить , и адрес Параметры.

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

Итак, давайте построим приложение планировщика:

mvn clean package

А теперь давайте забудем приложение, в том числе -агентлиб:jdwp параметр:

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 \
  target/gs-scheduling-tasks-0.1.0.jar

Откройте любой терминал и запустите команду. Когда наше приложение запущено, давайте переключимся на IntelliJ.

3. Вы запустите конфигурацию в IntelliJ IDEA

Далее, в IntelliJ, мы создаем новую конфигурацию запуска для удаленной отладки:

Теперь, когда наше приложение запущено, давайте начнем сеанс удаленной отладки, нажав на Отладить пуговица.

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

Далее мы открываем РасписаниеТеск файл и поместите точку разрыва на строке 36 показано здесь:

public void reportCurrentTime() {
  log.info("The time is now {}", dateFormat.format(new Date()));
}

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

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

4.1. Ограничения

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

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

5. Заключение

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

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

Пример приложения можно найти более на GitHub .