In Eclipse and Java, there is a debugging feature that allows you to drop back to any point in the current call stack. So, pause the thread then choose any line in the call stack and say "Drop to Frame." That will position the debugger to start of the method call in that frame. The state variables are reset so this in effect lets you go backwards. Is there an equivalent feature in gdb?
Eclipse (when debugging C programs) uses gdb, so sure there is such a feature in gdb.
If I understand correctly you are interested in following commands: frame, up, down, bt...