Прикрепить отладчик Intellij-IDEA к запущенному Java-процессу

Можно ли подключить отладчик Intellij-IDEA к запущенному Java-процессу?

Ответ 1

Да! Вот как вы его настроили.

Запустить конфигурацию

Создайте конфигурацию удаленного запуска:

  • Выполнить → Изменить конфигурации...
  • Нажмите "+" в левом верхнем углу
  • Выберите опцию "Remote" в самой левой панели
  • Выберите имя (я назвал мой "удаленная отладка" )
  • Нажмите "ОК", чтобы сохранить:

enter image description here

Параметры JVM

В приведенной выше конфигурации содержатся три поля только для чтения. Это параметры, которые сообщают JVM об открытии порта 5005 для удаленной отладки при запуске приложения. Добавьте соответствующий параметр JVM приложения, которое вы отлаживаете. Один из способов сделать это можно сделать так:

export JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

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

Вы можете изменить suspend=n на suspend=y, чтобы заставить приложение ждать, пока вы не подключитесь к IntelliJ до его запуска. Это полезно, если точка останова, которую вы хотите ударить, возникает при запуске приложения.

Debug

Запустите приложение, как обычно, а затем в IntelliJ выберите новую конфигурацию и нажмите "Отладка".

enter image description here

IntelliJ подключится к JVM и начнет удаленную отладку.

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

Ответ 2

Это возможно, но при запуске приложения вам нужно добавить несколько флагов JVM.

Вам нужно добавить удаленную конфигурацию отладки: Изменить конфигурацию → Удаленный.

Затем вы найдете в отображаемых параметрах диалогового окна, которые вы должны добавить к выполнению программы, например:

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

Затем, когда ваше приложение запущено, вы можете прикрепить свой отладчик. Если вы хотите, чтобы ваше приложение подождало, пока не будет подключен отладчик, просто замените флаг suspend на y (suspend=y)

Ответ 3

Кроме того, не забудьте добавить флаг "-Xdebug" в приложении JAVA_OPTS, если вы хотите подключиться в режиме отладки.

Ответ 4

в AndroidStudio или идее

  • Конфигурация приложения будет отлаживаться, откройте "Редактировать конфигурации"

добавить опцию "Параметры VM" "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005" помните "адрес"

введите описание изображения здесь

  1. Конфигурировать удаленный отладчик если не выйдет, нажмите +, чтобы добавить

укажите "Порт" так же, как в шаге 1 "адрес", введите описание изображения здесь