Как отлаживать код Java, когда он не синхронизирован?

Одна из проблем, с которыми я сталкиваюсь, заключается в том, что мои файлы jar и исходные файлы не совпадают.

Я бы хотел:

  • Будьте уведомлены, когда источник и двоичные файлы не совпадают (я думаю, Visual Studio может сделать что-то вроде этого...)
  • Установить точки останова не по строкам, а по функциям. Например, установите точку прерывания при входе функции foo().

Я использую в основном затмение; поэтому решения для eclipse были бы наиболее ценными, но любой IDE (или отладчик командной строки) будет делать. Спасибо!

Ответ 1

При разработке просто использовать и ссылаться на .class файлы, которые сохраняются в вашей среде IDE.

Если ваш проект начинает расти до такой степени, что это действительно полезно для ссылки на .jar, вам лучше обрабатывать банку как отдельные проекты.

Ответ 2

Используйте метод breakpoints вместо контрольных точек линии. Они могут быть остановлены при вводе/выходе из метода. Вы получаете их двойным щелчком левой стороны редактора в строке, содержащей объявление метода.

Ответ 3

Отладочная информация ограничена номерами строк в исходном файле... Я согласен с тем, что наличие предупреждения о том, что строки неправильные, было бы неплохо, но для этого потребуется больше метаданных в банке, чем я думаю...

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

Когда вы создаете банку для развертывания, также создайте банку с двоичным источником И. Чтобы исследовать исходный код трассировки стека на реальном сервере, настройте отдельный проект в eclipse и добавьте двоичную + исходную банку в путь к классам. Возможно, вам придется явно указать местоположение исходного кода на ту же самую банку (хотя я думаю, что Eclipse просто сделает это автоматически).

Затем вам просто нужно добавить копирование двоичной + исходной банки в соответствующее место в рабочей области, как и при развертывании (желательно с развертыванием script).

Если это ваш сервер, вы можете даже рассмотреть возможность развертывания двоичной + исходной банки на реальном сервере - таким образом вы всегда сможете получить исходный код.

Ответ 4

Перейдите на вкладку "Проект" в Eclipse, а затем

  • нажмите clean: Project- > Clean...
  • автоматически нажимаем на сборку: Project- > Build автоматически