Можно ли подключить отладчик Intellij-IDEA к запущенному Java-процессу?
Прикрепить отладчик Intellij-IDEA к запущенному Java-процессу
Ответ 1
Да! Вот как вы его настроили.
Запустить конфигурацию
Создайте конфигурацию удаленного запуска:
- Выполнить → Изменить конфигурации...
- Нажмите "+" в левом верхнем углу
- Выберите опцию "Remote" в самой левой панели
- Выберите имя (я назвал мой "удаленная отладка" )
- Нажмите "ОК", чтобы сохранить:
Параметры 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 выберите новую конфигурацию и нажмите "Отладка".
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"
помните "адрес"
- Конфигурировать удаленный отладчик если не выйдет, нажмите +, чтобы добавить