Re: internal-error: insert_step_resume_breakpoint_at_sal

Andrew Cagney
2005-01-26T21:39:15Z

Nick Roberts wrote:
> > > However, I don't know how to get a backtrace as sending SIGINT (actually
> > > SIGSTOP with Emacs) interrupts the bottom level process (Emacs in this
> > > case). I can then interrupt the GDB being debugged, but presumably by then
> > > things have changed.
> >
> > You can attach to gdb - $ gdb gdb <pid> - and then get a backtrace that way.
>
> Ah, yes! It just tells me GDB is waiting. Perhaps that was obvious but I had
> hoped it would be looping as that would have been a problem that I could have
> debugged.
>
> #0 0x4012e7e9 in wait4 () from /lib/libc.so.6
> #1 0x4012e787 in waitpid () from /lib/libc.so.6
> #2 0x0809b2e2 in child_wait (ptid={pid = -1, lwp = 0, tid = 0},
> ourstatus=0xbffff1d0) at linux-nat.c:1689
> During symbol reading, incomplete CFI data; unspecified registers (e.g., eax) at 0x809b2fd.
> #3 0x080f98ea in wait_for_inferior () at infrun.c:973
>
>
> > Anyway, same as before, lets look at a transcript (see the script
> > command) with "set debug infrun 1" (and perhaphs also "set debug target
> > 1" - that one is really verbose).
>
> Its attached below. GDB isn't hanging as it spews out more output from infrun
> if I move the mouse around in Emacs. Its just not letting Emacs reach the next
> statement.

This sounds like something was dropped on the floor :-(

Looking at the logs, it appears that GDB is continuously receiving and
then delivering signals (resume step=0, signal=20) and never getting an
oportunity to do a step :-(

We're going to need more info, try

$ script -c gdb
(gdb) file ...
(gdb) set debug target 1
(gdb) set debug infrun 1
(gdb) run
..
.
(gdb) step

..
(gdb) quit

it will create a transcript file that interleaves the log output and the
commands you've typed (and it will be big!).

Andrew