[RFA] Reverse debugging, part 1/3: target interface

Michael Snyder msnyder@redhat.com
Thu Apr 20 23:53:00 GMT 2006


Daniel Jacobowitz wrote:

> With that fixed I can try it:
> 
> (gdb) tar rem :1234
> Remote debugging using :1234
> 0x00002aaaaaaaba80 in ?? ()
> (gdb) rsi
> 0x00002aaaaaaaba80 in ?? ()
> (gdb)
> 0x00002aaaaaaaba83 in ?? ()
> 
> OK, that's two bugs.  One is the vCont bug I mentioned in another
> message; it's stepping forward instead of backwards.  The other has
> nothing to do with this at all; apparently PTRACE_STEP isn't working
> for the first instruction in the program and we're taking two steps to
> go one instruction.  OK, let's avoid the vCont bug and try again:
> 
> (gdb) set remote verbose-resume-packet 0
> (gdb) rsi
> Sending packet: $m2aaaaaab7320,1#70...Ack
> Packet received: f3
> Sending packet: $M2aaaaaab7320,1:cc#50...Ack
> Packet received: OK
> Sending packet: $Hc0#db...Ack
> Packet received: E01
> Sending packet: $bs#d5...Ack
> Packet received:
> warning: Invalid remote reply:
> *hang*
> 
> It thinks that the attempt to step has succeeded and that the program
> is now running.  That's pretty messy failing.

Agreed, of course.  Well, this code in remote_wait...

1.1 (shebs 16-Apr-99):      default:
1.1 (shebs 16-Apr-99):        warning ("Invalid remote reply: %s", buf);
1.1 (shebs 16-Apr-99):        continue;
1.1 (shebs 16-Apr-99):      }

*... has been essentially untouched since the public repository was
created.  I could trace it back further, but my gut feeling is that
it is basically untested.  I mean, if we say "continue" here,
of course it's going to hang...  we've just consumed the target's
reply, so it's not going to send us anything else.  Generally, you
send one command, you get one reply.

My inclination is to call error here, instead of continue.
But of course I know of no way to test the effects, except
for the experiment you've just done.

How does that strike you?



* Of course the code is not really Stan's -- he just created the repository.



More information about the Gdb-patches mailing list