2014-11-29 5 views
1

Когда я создаю файлы с использованием gradle в intellij и запускаю в режиме отладки, я могу установить точки останова и пошаговое отладочное приложение. Мне интересно, как это возможно, если источники скомпилированы в классы? В веб-разработке у нас есть что-то, называемое исходными картами, что-то вроде этого в мире Java?Как IDE удается отлаживать скомпилированный код Java

+1

Вы можете декомпилировать свой Java-код, либо вы можете использовать какой-то внешний инструмент, например JDGUI, либо использовать какой-либо плагин IDE. Я не знаю Intellij-idea, но в Eclipse вы можете прикрепить источники во время отладки. – Michal

ответ

2

Два решения:

  • присоединять источники для скомпилированного кода Java; если вы используете инструмент построения, такой как gradle или maven, ваша среда IDE будет обычно загружать источники вместе с «двоичной jar», поэтому вы сможете установить контрольные точки даже в этом случае; в противном случае вы можете подключать источники вручную (обязательно в этом случае сопоставить исходную и двоичную версии!);
  • IDEA 14. + имеет встроенный декомпилятор, если у вас нет источников; вы можете использовать результат декомпиляции и установить точки останова.

IDEA может сделать точку 1 и @Michal говорит, что Eclipse тоже может; Я подозреваю, что NetBeans тоже это допускает. Что касается пункта 2, я знаю только об IDEA.

+0

Спасибо! На самом деле мой вопрос был продиктован тем [вопросом] (http://stackoverflow.com/questions/27200206/android-studio-doesnt-highlight-line-in-debugger-when-hit-by-debugger). Я использую Android Studio для отладки, и мне интересно, есть ли у нее все для опции 2, которую вы указали, какую-либо идею, как это проверить? –

+0

Да, не знаю ... Я не занимаюсь Android;) Не можете ли вы приложить источники? – fge

+0

Извините, какие источники? Прикрепите здесь? –

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