Is it possible in gdb to go to a line before the currently executing line.
e.g:
void my_fun( somePtrType** arr,int start,int end)
{
// arr is an array of pointers to somePtrType
//line a
... some assignments
swap(&arr[ind1] , &arr[ind2] ) ;
//line b (current line )
}
I am at line b currently and can examine the arr values there but I want to go back to line a and examine the contents of arr at that time.
I think it might not be possible because a debugger can run a code in slow motion,but can’t make it execute backwards.
Any more insights..
Yes! With the new version 7.0 gdb, you can do exactly that!
The command would be “
reverse-step“, or “reverse-next“.You can get gdb-7.0 from http://ftp.gnu.org:/pub/gnu/gdb
If you run into the error:
Target child does not support this command.then try addingtarget recordat the beginning of execution, after startingrun.Edit: Since GDB 7.6
target recordis deprecated, usetarget record-fullinstead.