Отладка подключаемых модулей Eclipse
Это моя первая попытка создания плагина Eclipse. Я создал один, а также сайт с функцией и обновлением. Я установил целевую платформу в качестве локальной установки Eclipse. Когда я запускаю/отлаживаю плагин из среды разработки, все работает нормально.
Теперь мой коллега установил плагин с сайта обновления, который я разместил. Когда он начинает использовать любую функциональность, открытую моим плагином, он получает исключения во время выполнения.
- Он видит исключения с нулевым указателем, которые не возникали, когда я запускал проект подключаемого модуля из моей среды разработки.
- У меня есть мастер, который является частью моего подключаемого модуля. Когда он закрывает его, он получает "Необработанное исключение цикла событий", и мастер не закрывается. У меня не было этой проблемы, когда я запускал/отлаживал мой плагин в своей среде разработки.
Теперь я смущен тем, почему тот же плагин ведет себя по-разному в рабочей среде, в отличие от среды dev, и когда я отлаживал ее из своей IDE. Целевая платформа в обоих случаях - это одна и та же версия Eclipse. В чем могут быть причины?
И как мне отладить подключаемый модуль в рабочей среде? Есть ли возможность удаленной отладки для отладки плагинов в рабочей среде?
Любые предложения будут действительно полезными!
Ответы
Ответ 1
Чтобы удаленно отлаживать ваш плагин, сначала добавьте аргументы отладки в целевой файл Eclipse.ini
-vmargs
-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
прежде чем запускать его.
Затем откройте другой экземпляр Eclipse с рабочей областью, содержащей ваш проект подключаемого модуля.
Откройте "Выполнить" > "Конфигурации отладки...", выберите "Удаленное приложение Java" и создайте новую конфигурацию.
Как проект, просмотрите и выберите проект подключаемого модуля.
Также заполните ваши свойства соединения (узел целевого Eclipse и порт 1044).
Запуск недавно созданной конфигурации отладки позволяет отлаживать ваш подключаемый модуль так же, как вы отлаживаете локально.
Ответ 2
Теперь я смущен тем, почему тот же плагин ведет себя по-другому в рабочей среды, в отличие от среды разработки, и когда я отлаживал его из моей IDE. В обоих случаях целевая платформа - это такая же версия затмения. В чем могут быть причины?
Это классика: плагины Eclipse и приложения RCP действительно ведут себя по-разному между PDT (Eclipse IDE) и экспортированным продуктом.
В вашем случае исключение NullPointerException, выведенное из экспортированной версии, но не из Eclipse, в 9 раз из 10 представляет собой изображение или другие файлы ресурсов (свойства и т.д.), которые загружаются вашим кодом, но не указаны в сборке. свойства вашего плагина.
В любом случае, вам нужно будет проверить журналы, чтобы извлечь стек и выследить его причину. Такие журналы можно найти в рабочей области вашего друга в файле le .metadata/.log
Ответ 3
В рабочей области разработки, как она есть сейчас, используйте пункт меню "Debug As → Eclipse Application", чтобы запустить тестовое рабочее пространство. Когда он запустится, у вас будет две рабочие области: исходная рабочая область разработки и новое тестовое рабочее пространство. Вы можете установить контрольные точки в своем коде плагина в рабочей области разработки и запустить свой плагин в рабочей области тестирования.
Когда выполнение вашего плагина в рабочей области теста попадает на одну из ваших контрольных точек, выполнение приостанавливается, и вы можете использовать представление Debug в рабочей области разработки, чтобы посмотреть на переменные, установить больше контрольных точек или что-то еще, что вы хотите сделать, чтобы дебютировать ваши плагин.
Ответ 4
Смотрите Apache Wiki для разработки с Eclipse.
В Windows 10 с Tomcat, запущенным как служба Windows, я начал:
tomcat8.5\bin\Tomcat8w.exe
& добавлен на вкладке Java в качестве первой записи в Параметры Java для включения удаленной отладки:
-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n