I think you are talking about reversible debugging, a feature in MSVC that allow you to move the stack pointer to replay or jump some lines-expressions. I have used it since i have never found it any interest.
This feature is about to be implemented in branch 6.7 of gdb.