Как включить удаленную отладку для приложения Eclipse?

Я пытаюсь включить удаленную отладку для проекта плагина eclipse с целью использования IntelliJ IDEA в качестве отладчика.

Шаги, которые я предпринял до сих пор:

  1. Запустите Эклипс.
  2. Выполнить -> Отладить конфигурации...
  3. Создайте новое «Приложение Eclipse» (чтобы запустить локальное рабочее пространство, которое загружает плагин).
  4. Добавьте -Xdebug -Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n к аргументам виртуальной машины.
  5. Нажмите кнопку Отладка.

Я получаю следующую ошибку:

ОШИБКА: не удается дважды загрузить этот агент JVM TI, проверьте командную строку java на наличие повторяющихся параметров jdwp. Произошла ошибка во время инициализации библиотеки агента виртуальной машины, не удалось инициализировать: jdwp

Какие шаги следует предпринять, чтобы IntelliJ IDEA могла отлаживать подключаемый модуль Eclipse, работающий в рабочей области среды выполнения?

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


person Pétur Ingi Egilsson    schedule 11.01.2016    source источник
comment
Вы пробовали -Xnoagent ?   -  person Marged    schedule 11.01.2016
comment
Нет, не хочешь уточнить?   -  person Pétur Ingi Egilsson    schedule 11.01.2016
comment
Почему вы хотите удаленно отлаживать его? Если вы уже можете запустить в режиме отладки из eclipse.   -  person Peter Kirschner    schedule 12.01.2016
comment
@PeterKirschner Я распечатываю код в разных точках останова. IntelliJ может отображать значения переменных рядом с этими переменными в точках останова. Я хочу, чтобы эти значения также были распечатаны. Я не верю, что это возможно в Eclipse. Я хочу включить удаленную отладку, чтобы иметь возможность сделать это.   -  person Pétur Ingi Egilsson    schedule 12.01.2016
comment
пример   -  person Pétur Ingi Egilsson    schedule 12.01.2016
comment
Вы можете использовать часы для выражений/переменных, но это не так красиво, как в IntelliJ. Но отладка с часами может вам помочь.   -  person Peter Kirschner    schedule 12.01.2016
comment
Наведение курсора мыши на вхождение переменной также покажет ее текущее значение — опять же не так удобно, как в IntelliJ.   -  person Rüdiger Herrmann    schedule 27.01.2016
comment
Что заставляет вас думать, что удаленная отладка даст вам то, чего не может дать «локальная» отладка? В конце концов, это та же инфраструктура отладчика в действии.   -  person Rüdiger Herrmann    schedule 27.01.2016
comment
Изменение кода @Pétur на лету требует, чтобы отладочное соединение было открыто для Eclipse. Если он открыт для Eclipse, вы не можете открыть его для IntelliJ.   -  person Jonah Graham    schedule 27.01.2016


Ответы (3)


  • Выполнить -> Отладить конфигурации...
  • Добавьте -Xdebug -Xrunjdwp:transport= dt_socket,address=1044,server=y,suspend=n к аргументам виртуальной машины.

Это избыточно. Использование конфигурации debug уже запускает приложение с присоединенным к процессу отладчиком eclipse. Вместо этого запустите его как конфигурацию запуска, если вы хотите включить отладку через серверный сокет.

Затем вы можете создать дополнительную конфигурацию отладки «удаленного Java-приложения» для подключения к этому сокету.

person the8472    schedule 27.01.2016

Я бы посоветовал вам НЕ пытаться запускать приложение Eclipse из Eclipse.

  • Экспортируйте приложение, чтобы оно стало самостоятельным приложением eclipse.
  • Измените файл eclipse.ini и добавьте необходимые параметры отладки в запись '-vmargs'.
  • Запустите отдельное приложение, как обычно.
  • Присоедините экземпляр Eclipse для разработки к тестовому приложению, как обычно для удаленной отладки.
person David G    schedule 11.01.2016
comment
Это не то, что мне нужно; предлагаемый обходной путь не отвечает на мой вопрос. Мне нужно, чтобы он запускался из eclipse, чтобы иметь возможность вносить изменения в код на лету. - person Pétur Ingi Egilsson; 27.01.2016

Конфигурация Tomcat:-> По умолчанию удаленная отладка выполняется на порту 8000. Если вы хотите изменить это, перейдите в файл catalina.bat и обновите эту строку, задав JPDA_ADDRESS=localhost:8000, на желаемый номер порта. И вы также можете установить это свойство в файле setenv.bat. Как правило, этого файла нет в Tomcat, поэтому просто создайте один командный файл с именем setenv и напишите в этой строке набор JPDA_ADDRESS=localhost:8000.

Теперь перейдите в каталог bin, затем откройте командную строку и напишите catalina jpda start. Это заставит кота работать в режиме отладки. Вы можете убедиться в этом, увидев что-то вроде этого Прослушивание транспорта dt_socket по адресу: 8000

1)Затмение

Перейдите к запуску-> конфигурация отладки-> Удаленное приложение Java-> Нажмите на новую конфигурацию запуска. Затем заполните такие параметры, как проект, порт (укажите тот же номер порта, который вы настроили в tomcat), хост (если вы используете локальный, вы можете дайте локальный, затем примените и отладьте. Я использую eclipse 2020.09.

Изображение удаленной отладки Eclipse

2) интеллектуальная идея:

Перейдите в раздел «Добавить конфигурацию» -> нажмите +-> и выберите удаленную отладку jvm-> Затем укажите тот же номер порта и имя (любое имя), затем примените.

Изображение удаленной отладки Intellij Idea

person sumit singh    schedule 21.01.2021