2013-11-07 4 views
7

Мне нужно отлаживать приложение Java У меня нет исходного кода. Он выполняется локально на сервере Jetty. Декомпиляция с использованием JD-GUI отлично работает. Также хорошо работает подключение JDB через сокет или разделяемую память.Как отлаживать приложение Java без доступа к исходному коду?

В случае неудачи я соединяю детали вместе. Я в основном пытался Eclipse с плагином JD-Eclipse и удаленной отладкой. Мне не удалось найти способ успешно подключить отладчик к запущенному процессу. Кажется, все кажется, что у меня есть хотя бы часть приложения, доступного как исходный код в проекте, но у меня его нет. И это довольно большое приложение (200+ MiB JAR-файлов и 500+ MiB других вещей), поэтому попытка создать проект из всех декомпилированных классов и заставить его работать не является вариантом, если это легко автоматизировать.

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

+0

Посмотрите «jad, Java Decompiler». Результаты не всегда будут идеальными, но это даст вам источники, если вам действительно нужны источники. – atk

+1

Декомпиляция не проблема; отладка запущенного процесса с помощью декомпилятора для получения источника - это то место, где я боюсь. –

+0

Итак, вы уже декомпилировали и получили копию источника, но у вас возникли проблемы с подключением отладчика одновременно к источнику и процессу? – atk

ответ

2

Возможно, вы можете сделать это с помощью комбинации jd-eclipse и фрагмента редизайна расширения jd-eclipse.

JD-Eclipse

Realignment fragment

Процесс установки этого довольно проста:

  • Установите JD-Eclipse следуя инструкциям, приведенным на сайте JD-Затмения (процесс довольно прост)
  • Restart Eclipse
  • Download Перестройка realignment.jd.ide.eclipse_1.0.2.jar
  • Скопируйте файл в папку \ dropins
  • Перезапустите Eclipse
  • Перейти к Windows -> Preferences
  • Navigate в General -> Editors -> Файл Ассоциации
  • Выберите раздел * .class в разделе «Типы файлов», выберите «Реорганизация для JD Редактор файлов классов в разделе« Связанные редакторы »и нажмите кнопку« »по умолчанию.
  • Нажмите ОК и начните отладку!
+0

Я уже сделал то, что вы описали. Как начать отладку оттуда? Просто отладка отладки не будет работать, потому что у меня нет источника и нет проекта для обеда. Я пробовал удаленную отладку, но ничего не происходит, или я получаю ошибку подключения. –

+0

Какие параметры JVM используются для запуска процесса удаленной отладки? –

+0

-Xrunjdwp: transport = dt_socket, address = 8023, server = y, suspend = n –

Смежные вопросы