Re: single stepping mips remote programs built with gcc 4.0

Daniel Jacobowitz
2005-11-22T18:42:02Z

On Mon, Nov 21, 2005 at 09:25:45PM -0800, Newman, Sarah R wrote:
> (gdb) set debug remote 1
> (gdb) step
> Sending packet: $m80001998,4#70...Ack
> Packet received: 27bdffe8
> Sending packet: $M80001998,4:0005000d#43...Ack
> Packet received: OK
> Sending packet: $m800019b0,4#91...Ack
> Packet received: 03e00008
> Sending packet: $M800019b0,4:0005000d#64...Ack
> Packet received: OK

Insert breakpoints before stepping...

> Sending packet: $s#73...Ack
> Packet received: S05
> Sending packet: $p25#d7...Ack
> Packet received: 800019a4

Step over the jump... into the delay slot, which is not what GDB
expects, but hopefully that's not the problem here.

> 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: $m8000199c,4#9b...Ack
> Packet received: afbf0010
> Sending packet: $m800019a0,4#90...Ack
> Packet received: 0c000664
> Sending packet: $m800019a4,4#94...Ack
> Packet received: 00000000
> Sending packet: $c#63...Ack
> Packet received: S02
> Sending packet: $p25#d7...Ack
> Packet received: 800019b0

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.

--
Daniel Jacobowitz
CodeSourcery, LLC