This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: reverse debugging implementation + commands



Just a bit on testing for conditions when going backwards.


Just had a look at reverse.c and it is very different from anything I ever did. To find the last time a location was changed for instance it looks like it would go back one instruction at a time until the condition is satisfied. I can see a middle way that encompasses both approaches in that if the registers are saved on every single instruction my approach ends up being the same as what reverse.c does so I've written it up here that way:

set found counter to unset
set check counter to here
while found counter is null and we can go backwards
  roll back from check counter to previous save point
  go forward till check counter reached
   if condition set then
     set found counter to instruction counter
  endif
  if found counter not set
    roll back to last save point
    set check counter to this point
  endif
endwhile

At the end of this found counter if set gives the instruction counter when the condition was last satisfied.

With this there is no special work needed to check conditions when going backwards compared to going forwards.

David


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]