This is the mail archive of the
mailing list for the GDB project.
Re: [PATCH 8/9] Use reinsert_breakpoint for vCont;s
- From: Pedro Alves <palves at redhat dot com>
- To: Yao Qi <qiyaoltc at gmail dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Thu, 21 Jul 2016 11:02:21 +0100
- Subject: Re: [PATCH 8/9] Use reinsert_breakpoint for vCont;s
- Authentication-results: sourceware.org; auth=none
- References: <firstname.lastname@example.org> <email@example.com> <firstname.lastname@example.org> <email@example.com>
On 07/05/2016 09:14 AM, Yao Qi wrote:
> Pedro Alves <firstname.lastname@example.org> writes:
>>> if thread 1 doesn't hit the reinsert breakpoint, we don't have to
>>> remove them, because GDB will send vCont;s:1 next time, and GDBserver
>> There's no guarantee GDB will send vCont;s:1 next time.
>> The user may do "continue" instead of "step".
>>> can only install reinsert breakpoints if they are not installed yet.
>> The user may even do "return + continue" or "jump", or an infcall,
>> all of which resume the thread at a different address from the address
>> the thread last stopped. So there's no guarantee that the
>> reinsert breakpoint address makes any sense for the next step request,
>> or even that the next resume request is a step in the first place.
>> Basically the previous step request must be completely forgotten after
>> gdb has seen the thread stop. In all-stop, gdb "sees "all threads
>> stopped on each and every event reported to gdb, for any thread.
>> A stop reply cancels any and all previous resume requests.
> I add some code to delete all reinsert breakpoints for all threads in
> all-stop. See the patch below,
This version looks good to me.