This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 4/8] Force to insert software single step breakpoint


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 (éå)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]