My uncle wrote a TCP/IP stack for the early symbolics lisp machines. He told me at the time (probably early 90s) how they had what is now known as Time Travel Debugging[1]. I remember it just totally blew my mind when he told me in the debugger you could pause the process, step backwards, change some variables or even code, and then start going forwards again. Way ahead of their time.
[1] https://learn.microsoft.com/en-us/windows-hardware/drivers/d...