This is the mail archive of the
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.firstname.lastname@example.org>
>>>>> "Maciej" == Maciej W Rozycki <email@example.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
... 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.