This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] remote: Fix a crash on longjmp breakpoint removal
- From: Tom Tromey <tromey at redhat dot com>
- To: "Maciej W. Rozycki" <macro at codesourcery dot com>
- Cc: <gdb-patches at sourceware dot org>, Keith Seitz <keiths at redhat dot com>
- Date: Tue, 20 Dec 2011 08:51:06 -0700
- Subject: Re: [PATCH] remote: Fix a crash on longjmp breakpoint removal
- References: <alpine.DEB.1.10.1112131648050.5354@tp.orcam.me.uk>
>>>>> "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