Hmm ... Mój nauczyciel, niektórzy z moich kolegów z klasy i ja zamierzamy zbudować projekt Debugger. Mamy nadzieję, że nasz debugger jest interaktywny, to znaczy, kiedy kody są wpisane, wynik zostanie wyświetlony kilka sekund później, a wynik zmienia się, gdy zmienia się kod wejściowy. Z drugiej strony, podczas pracy, możemy cofnąć do poprzedniej linii lub punktów przerwania.Jaka jest zasada "Time Travel Debugger"?
Zgodnie ze słowami mojego nauczyciela podczas programowania program będzie zajmował się techniką "Time Travel Debugging". Przeszukałem projekt utrzymywany przez innych, ale słabo rozumiem kod i nie ma żadnych informacji o tej technice w żadnym z tych plików README.
referencyjny: https://github.com/mattgodbolt/compiler-explorer
Czy twój nauczyciel jest fanem Dr. Who? "Kompilacja w czasie podróży" nie jest terminem standardowym. Wygląda to na wyrażenie, które wymyślili. Możesz zapytać ich, co przez to rozumieją. –
Chodzi o to, czy można ustawić punkt przerwania w debugerze, a następnie krok * do tyłu * poprzez instrukcje, aby zobaczyć stan środowiska wykonawczego w punktach * przed * punktem przerwania. – Pointy
I tak naprawdę nie ma to wiele wspólnego z * kompilatorami *, naprawdę; to rzecz systemu runtime. Cóż, domyślam się, * że kompilator może generować kod, aby utrzymać jakiś kontekst kontroli, ale wydaje się to dziwnym sposobem robienia rzeczy. – Pointy