2017-02-11 2 views
1

У меня возникает проблема при отладке кода Java в IntelliJ.Исходный код не соответствует байтовому индексу IntelliJ 15 при отладке

Я подключен к удаленному серверу, используя Maven для создания моего проекта, и проект строит правильно, проверял его несколько раз.

Каждый раз, когда я вставляю точку отладки, IntelliJ возвращает сообщение об ошибке «в этом пункте нет исполняемого кода». В то время как некоторые точки останова вставлены, IntelliJ возвращает сообщение об ошибке, в то время как выполнение «исходный код не соответствует байтовому коду».

Пробное решение, предоставляемое в различных ссылках, таких как: использование параметров синхронизации, аннулирование кешей, восстановление и другие.

+0

Вы абсолютно уверены, что исходный код, который у вас есть в IDE, соответствует классам, загруженным в удаленную JVM? Может быть, у вас есть дополнительный бит в classpath с более старыми версиями классов, который переопределяет более поздние версии или код построен без информации об отладке, или некоторые обработчики аннотаций или obfucsator изменили целевые классы во время процесса сборки. – CrazyCoder

+0

Иногда это случается, когда у вас есть более новая версия вашего проекта в maven, но локальная версия устарела. Попробуйте «Настройки-> Maven-> Reimport project» и посмотрите, что произойдет. –

+0

** Антон **, я попробовал то, что вы упомянули, и хотя я не видел вариант проекта Reimport, включил параметр Всегда обновлять моментальный снимок. Но успеха не было. Раньше я открывал несколько проектов, построенных в одном репо в одном окне IntelliJ, теперь я попытался открыть один проект, но не успел. –

ответ

1

Вам необходимо убедиться, что исходный код, который у вас есть в IDE, соответствует классам, загруженным в удаленную JVM.

Возможно, у вас есть дополнительный кусок в пути класса с более старыми версиями классов, который переопределяет более поздние версии или код построен без информации об отладке, или некоторые обработчики аннотации/обфускаторы изменили целевые классы во время процесса сборки ,

Использование javap или декомпилятор может помочь обнаружить классы, которые не синхронизированы.

Как вы уже упоминали в комментарии, код, выполняемый на сервере, был из другой ветви git, чем код, который вы имели в IDE. Этого можно избежать, восстановив проект в среде IDE и развернув фактический код на сервер.

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