Как отлаживать код Java, когда он не синхронизирован?
Одна из проблем, с которыми я сталкиваюсь, заключается в том, что мои файлы jar и исходные файлы не совпадают.
Я бы хотел:
- Будьте уведомлены, когда источник и двоичные файлы не совпадают (я думаю, Visual Studio может сделать что-то вроде этого...)
- Установить точки останова не по строкам, а по функциям. Например, установите точку прерывания при входе функции foo().
Я использую в основном затмение; поэтому решения для eclipse были бы наиболее ценными, но любой IDE (или отладчик командной строки) будет делать.
Спасибо!
Ответы
Ответ 1
При разработке просто использовать и ссылаться на .class
файлы, которые сохраняются в вашей среде IDE.
Если ваш проект начинает расти до такой степени, что это действительно полезно для ссылки на .jar
, вам лучше обрабатывать банку как отдельные проекты.
Ответ 2
Используйте метод breakpoints вместо контрольных точек линии. Они могут быть остановлены при вводе/выходе из метода. Вы получаете их двойным щелчком левой стороны редактора в строке, содержащей объявление метода.
Ответ 3
Отладочная информация ограничена номерами строк в исходном файле... Я согласен с тем, что наличие предупреждения о том, что строки неправильные, было бы неплохо, но для этого потребуется больше метаданных в банке, чем я думаю...
Возможно, вы захотите рассмотреть проблему с изменением процесса сборки. Это не совсем отвечает на ваш вопрос, но, надеюсь, это даст вам стратегию, которая будет решать основную проблему.
Когда вы создаете банку для развертывания, также создайте банку с двоичным источником И. Чтобы исследовать исходный код трассировки стека на реальном сервере, настройте отдельный проект в eclipse и добавьте двоичную + исходную банку в путь к классам. Возможно, вам придется явно указать местоположение исходного кода на ту же самую банку (хотя я думаю, что Eclipse просто сделает это автоматически).
Затем вам просто нужно добавить копирование двоичной + исходной банки в соответствующее место в рабочей области, как и при развертывании (желательно с развертыванием script).
Если это ваш сервер, вы можете даже рассмотреть возможность развертывания двоичной + исходной банки на реальном сервере - таким образом вы всегда сможете получить исходный код.
Ответ 4
Перейдите на вкладку "Проект" в Eclipse, а затем
- нажмите clean: Project- > Clean...
- автоматически нажимаем на сборку: Project- > Build автоматически