This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 4/8] Force to insert software single step breakpoint
- From: Yao Qi <qiyaoltc at gmail dot com>
- To: Pedro Alves <palves at redhat dot com>
- Cc: Yao Qi <qiyaoltc at gmail dot com>, gdb-patches at sourceware dot org
- Date: Fri, 18 Mar 2016 14:24:54 +0000
- Subject: Re: [PATCH 4/8] Force to insert software single step breakpoint
- Authentication-results: sourceware.org; auth=none
- References: <1457088276-1170-1-git-send-email-yao dot qi at linaro dot org> <1457088276-1170-5-git-send-email-yao dot qi at linaro dot org> <56E2B0C2 dot 705 at redhat dot com> <86egbay78l dot fsf at gmail dot com> <56EAA5A4 dot 5040601 at redhat dot com>
Pedro Alves <palves@redhat.com> writes:
> Maybe what we need to do is firmly declare (and add comments in that
> direction) that the arch's get_next_pcs implementation must always evaluate
> the condition of conditional branches, and not put a breakpoint at the
> branch destination if the condition is false, thus ensuring forward progress.
> The ARM implementation does this, though I haven't checked whether all the
> branch instructions are covered. Some other archs don't, and always put
> a break at the branch destination, like e.g., moxie_software_single_step.
Some targets doesn't evaluate condition and simply insert breakpoint on
possible destinations. They are cris, moxie, sparc and spu. I'll add
condition evaluation to these software single step implementations.
>
> If we find some instruction where that is still not be sufficient,
> due to side effects, then maybe gdb and gdbserver could first
> try emulating the instruction's side effects manually. And only
> if that doesn't work, then try displaced stepping. We could leave
> that for later, until we find a need.
What does "that" mean in "We could leave that for later"? Is it
"instruction emulation + displaced stepping" or "displaced stepping"?
It is difficult to do instruction emulation for these targets, because I
need to understand the details all these targets. Just make sure I
correctly understand the scope of the work.
--
Yao (éå)