Помимо того, что было упомянуто в предыдущих ответах - то есть функция Eclipse «перетащить в кадр» в представлении отладки , которая перезапускает отладку ранее в кадре стека (но не возвращает глобальные / статические данные) и Всезнающий отладчик , который немного сырой и не так сильно развивается - есть несколько инструментов на основе Eclipse, которые можно использовать для «возврата» во время (запуска):
JIVE расширяет отладчик Java Eclipse возможностью записи состояний программы.Перспектива JIVE предоставляет некоторые полезные UML-диаграммы, которые обновляются во время работы программы.Эти диаграммы предоставляют обзор состояния приложения (диаграмма объекта) и трассировки стека (диаграмма последовательности).Вы можете запросить запомненную трассировку и сделать шаг назад и вперед во времени и увидеть соответствующие диаграммы.
Diver записывает только вызовы методов и в действительности не записывает состояния программ, такие как JIVE.Каждое событие вызова метода сохраняется для последующего поиска и анализа.Он расширяет конфигурации Java Run и Debug, главным образом, для определения фильтров.Трассировка может быть приостановлена / возобновлена / отфильтрована во время выполнения.После записи перспектива Diver может отображать ее на интерактивной диаграмме последовательности.
JIVE и Diver - это проекты с открытым исходным кодом, разработанные в результате научных исследований.По состоянию на ноябрь 2012 года оба проекта являются активными.
Chronon является коммерческим продуктом, но у него есть бесплатные лицензии для студентов и проекты с открытым исходным кодом.Из того, что заявлено на их веб-сайте, это, пожалуй, самый полный рекордер, поскольку он способен воспроизводить записанную историю, шагая вперед и назад, позволяя, как говорится, отладку во времени.Кроме того, Eclipse не нужен для записи.
Все эти плагины довольно жадные в ресурсах, поэтому лучше иметь хорошую машину спецификаций и использовать их функцию фильтрации.Определенное требование для их успешного выполнения - расширить пространство кучи в eclipse.ini .
В моем случае я пытался использовать JIVE и Diver для отладки программы синтаксического анализа XML, но всегдазакончилось тем, что заморозило затмение из-за нехватки ресурсов.Diver может быть сложно запустить на 64-битной Linux , он работает на 32-битной Ubuntu и, возможно, других 32-битных дистрибутивах, используя эти советы .Diver работает на Windows, еще лучше на Windows 64-битной + 64-битной JVM, в противном случае вы будете ограничены максимальным пространством кучи 1,3-1,6 ГБ на 32-битных Windows .JIVE отлично работает на моем linux 64bit и, кажется, отлично работает на других платформах.