[PATCH] remote: Fix a crash on longjmp breakpoint removal

Tom Tromey tromey@redhat.com
Tue Dec 20 16:00:00 GMT 2011


>>>>> "Maciej" == Maciej W Rozycki <macro@codesourcery.com> writes:

Maciej>  I have observed a crash, where GDB attempts to send a packet to
Maciej> gdbserver after the remote target has already exited (and the
Maciej> gdbserver process terminated) -- here's the tail of an example
Maciej> remote session transcript:

Maciej>  I have tracked it down to remote_close calling
Maciej> discard_all_inferiors, which in turn eventually calls
Maciej> delete_thread_of_inferior, which calls
Maciej> clear_thread_inferior_resources, which calls
Maciej> delete_longjmp_breakpoint, which calls remote_remove_breakpoint,
Maciej> which needs to send some packets to the remote target to get the
Maciej> breakpoint removed.  But at this point the remote file
Maciej> descriptor has already been closed; after a W00 stop reply
Maciej> gdbserver does not expect any further input anyway.

You and Keith both came to the same diagnosis, but you have different
patches:

    http://sourceware.org/ml/gdb-patches/2011-11/msg00212.html

... our patch review delays seem to have bitten us this time.
Or anyway bitten the two of you, sorry about that.

I am not sure which approach is better.  I don't think I know enough
about remote.c to say.

Tom



More information about the Gdb-patches mailing list