Poza tym, co zostało wspomniane we wcześniejszych odpowiedziach - tj. Funkcja upuszczania do ramki Eclipse w widoku debugowania , która ponownie uruchamia debugowanie wcześniej w ramce stosu (ale nie przywraca danych globalnych / statycznych) i debuger Wszechwiedzący , który jest nieco surowy i nie tak bardzo ewoluuje - istnieje kilka narzędzi opartych na Eclipse, których można użyć do „cofnięcia się” w czasie wykonywania:
JIVE rozszerza debugger Eclipse Java o możliwość rejestrowania stanów programów. Perspektywa JIVE zawiera przydatne diagramy UML, które są aktualizowane podczas działania programu. Diagramy te zapewniają przegląd stanu aplikacji (diagram obiektów) i śladu stosu (diagram sekwencji). Możesz zapytać o zapamiętany ślad i cofnąć się i naprzód w czasie i zobaczyć odpowiednie diagramy.
Diver rejestruje tylko wywołania metod i tak naprawdę nie rejestruje stanów programów, takich jak JIVE. Każde zdarzenie wywołania metody jest przechowywane w celu późniejszego pobrania i analizy. Rozszerza konfiguracje Java Run i Debug głównie w celu określenia filtrów. Śledzenie można wstrzymać / wznowić / przefiltrować w czasie wykonywania. Po zarejestrowaniu perspektywa nurka może wyświetlić ją w interaktywnym diagramie sekwencji.
JIVE i Diver to projekty open source wydane na podstawie badań naukowych. Od listopada 2012 roku oba projekty są aktywne.
Chronon jest produktem komercyjnym, ale ma darmowe licencje dla studentów i projektów open source. Z tego, co twierdzi ich strona internetowa, jest to prawdopodobnie najbardziej wszechstronny rejestrator, ponieważ jest w stanie odtworzyć zapisaną historię, przechodzić do przodu i do tyłu, umożliwiając, jak mówią, debugowanie w czasie. Również Eclipse nie jest potrzebne do nagrywania.
Wszystkie te wtyczki są dość chciwe w zasobach, więc najlepiej mieć maszynę o dobrej specyfikacji i używać ich funkcji filtrowania. Zdecydowanym warunkiem pomyślnego ich uruchomienia jest rozszerzenie przestrzeni sterty w eclipse.ini .
W moim przypadku próbowałem użyć JIVE i Diver do debugowania programu parsującego XML, ale zawsze kończyło się to zamrożeniem zaćmienia z powodu braku zasobów. Diver może być trudny do uruchomienia na 64-bitowym systemie Linux , działa na 32- bitowym systemie Ubuntu i prawdopodobnie na innych 32-bitowych dystrybucjach korzystających z tych wskazówek . Diver działa na Windowsie, jeszcze lepiej na Windows 64-bit + 64-bit JVM, w przeciwnym razie będziesz ograniczony do maksymalnej przestrzeni sterty 1,3-1,6 Gb w 32-bitowych oknach . JIVE działa świetnie na moim 64-bitowym Linuksie i wydaje się działać dobrze na innych platformach.