Debugowanie podróży w czasie - Time travel debugging
Debugowanie czas podróży lub czas podróży debugowanie jest procesem cofanie się w czasie za pośrednictwem kodu źródłowego , aby zrozumieć, co dzieje się w trakcie realizacji z programu komputerowego . Zazwyczaj debugowanie i debugery , narzędzia pomagające użytkownikowi w procesie debugowania, umożliwiają użytkownikom wstrzymanie wykonywania uruchomionego oprogramowania i sprawdzenie bieżącego stanu programu. Użytkownicy mogą następnie przejść do przodu w czasie, przechodząc do lub nad stwierdzeniami i postępując w kierunku do przodu. Debugery interaktywne obejmują możliwość modyfikowania kodu i przechodzenia do przodu na podstawie zaktualizowanych informacji. Narzędzia do debugowania wstecznego umożliwiają użytkownikom cofanie się w czasie przez kroki, które doprowadziły do osiągnięcia określonego punktu w programie. Debugery podróżujące w czasie zapewniają te funkcje, a także umożliwiają użytkownikom interakcję z programem, zmianę historii w razie potrzeby i obserwowanie, jak program reaguje.
Charakterystyka wspierająca podróż w obie strony
Istnieje kilka cech, które wspierają zdolność do poruszania się w czasie zarówno do tyłu, jak i do przodu.
- Wybór czysto funkcjonalnego języka programowania pomaga ze względu na samowystarczalność czystych funkcji . Czyste funkcje nie mają skutków ubocznych i zależą tylko od informacji wyraźnie dostarczonych do funkcji, zapewniając powtarzalną, niezawodną i odtwarzalną ścieżkę w kodzie.
- Języki i debugery, które umożliwiają wymianę na gorąco , możliwość modyfikowania kodu w trakcie działania kodu, zapewniają niektóre wymagania niezbędne do przewijania i potencjalnie ponownego zapisu wykonania.
- Narzędzia oparte na debuggerze GNU (GDB) , dostępne dla kompatybilnych języków, takich jak C , C++ , Go i Fortran , są zdolne do odwrotnego debugowania, ale wysiłek ten znacznie spowalnia interakcję.
Debugery podróży w czasie
Debugery z możliwością cofania się obejmują:
- Debuger Wiązu
- Reaktor Wiązów
- Wskaźnik mejozy
- Narzędzie Microsoft Time Travel Debugging (TTD) dla natywnego oprogramowania Windows (x86, x64, ARM, ARM64)
- ocamldebug dla OCaml
- UDB dla Linuksa
- rr dla Linuksa x86
- provDebugR dla R
- Wallaby.js dla JavaScript
- RevDeBug dla C# i Java
- WhyLine dla Javy
Zobacz też
Bibliografia