RE: single stepping mips remote programs built with gcc 4.0

Newman, Sarah R
2005-11-22T19:44:30Z

> We realize we've stepped into a function call. But we're continuing
> without setting any breakpoint at all, which is bogus.
>
> > #0 remote_resume (ptid={pid = -1, lwp = 0, tid = 0}, step=0,
> > siggnal=TARGET_SIGNAL_0) at ../../GDB-ISS/gdb/remote.c:2603
> > #1 0x004240bb in resume (step=0, sig=TARGET_SIGNAL_0)
> > at ../../GDB-ISS/gdb/infrun.c:624
> > #2 0x004278b7 in keep_going (ecs=0x22d810) at
> > ../../GDB-ISS/gdb/infrun.c:2825
> > #3 0x00427606 in step_into_function (ecs=0x22d810)
> > at ../../GDB-ISS/gdb/infrun.c:2708
> > #4 0x00426d3a in handle_inferior_event (ecs=0x22d810)
> > at ../../GDB-ISS/gdb/infrun.c:2433
>
> I can see no way at all for step_into_function to call keep_going
> without inserting a stop breakpoint. Obviously that's gone wrong.
> Please step through that function and tell me where it's trying to put
> the breakpoint, in particular what happens before and during
> insert_step_resume_breakpoint_at_sal.

I believe there's no breakpoint set because where the next software
single step breakpoint would be placed, there is already a breakpoint
there.
Look at this slightly different run:

Num Type Disp Enb Address What
2 breakpoint keep y 0xffffffff800019b0 in main at tmp.c:14
3 breakpoint keep y 0xffffffff8000199c in main at tmp.c:11 <--
one instruction later than previous run

Sending packet: $m800019b0,4#91...Ack
Packet received: 03e00008
Sending packet: $M800019b0,4:0005000d#64...Ack
Packet received: OK
Sending packet: $m8000199c,4#9b...Ack
Packet received: afbf0010
Sending packet: $M8000199c,4:0005000d#6e...Ack
Packet received: OK
Sending packet: $Hc0#db...Ack
Packet received: ENN
Sending packet: $s#73...Ack
Packet received: S05
Sending packet: $p25#d7...Ack
Packet received: 800019a4
Sending packet: $s#73...Ack
Packet received: S05
Sending packet: $p25#d7...Ack
Packet received: 80001990
Sending packet: $p1d#05...Ack
Packet received: 8402ba60
Sending packet: $p1f#07...Ack
Packet received: 800019a8
Sending packet: $m80001998,4#70...Ack
Packet received: 27bdffe8
Sending packet: $m800019a0,4#90...Ack
Packet received: 0c000664
Sending packet: $m800019a4,4#94...Ack
Packet received: 00000000
Sending packet: $m80001998,4#70...Ack
Packet received: 27bdffe8
Sending packet: $M80001998,4:0005000d#43...Ack <--- was explicit
breakpoint in previous run, but not this run
Packet received: OK
Sending packet: $c#63...Ack
Packet received: S02
Sending packet: $p25#d7...Ack
Packet received: 800019b0