This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA] dummy frame handling cleanup, plus inferior fun call signal handling improvement
- From: Pedro Alves <pedro at codesourcery dot com>
- To: gdb-patches at sourceware dot org
- Cc: "Ulrich Weigand" <uweigand at de dot ibm dot com>, Doug Evans <dje at google dot com>
- Date: Fri, 5 Dec 2008 00:36:56 +0000
- Subject: Re: [RFA] dummy frame handling cleanup, plus inferior fun call signal handling improvement
- References: <200812050018.mB50I05V031478@d12av02.megacenter.de.ibm.com>
On Friday 05 December 2008 00:18:00, Ulrich Weigand wrote:
> Pedro Alves wrote:
> > On Thursday 04 December 2008 22:32:12, Doug Evans wrote:
> > > In the original code, is there a case when stop_pc != registers.pc?
> >
> > Here,
> >
> > <stopped at 0x1234, thread 1>
> > (gdb) set $pc = 0xf00
> > (gdb) call func()
>
> Huh. But that case is in fact *broken*, because GDB will use stop_pc
> incorrectly: for example, the check whether we are about to continue
> at a breakpoint will look at stop_pc, but then continue at $pc.
This one I believe was the original intention. The rationale being
that you'd not want to hit a breakpoint again at stop_pc (0x1234),
because there's where you stopped; but, you'd want to hit a a breakpoint
at 0xf00, sort of like jump *$pc hits a breakpoint at $pc.
Note, I'm not saying I agree with this. I did say that probably nobody
would notice if we got rid of stop_pc.
> It seems to me just about every current user of stop_pc *really* wants
> to look at regcache_read_pc (get_current_regcache ()) ...
I've been sneaking the idea of getting rid of stop_pc for a while now:
http://sourceware.org/ml/gdb-patches/2008-06/msg00450.html
In fact, I have a months old patch here that completelly removes stop_pc.
IIRC, there were no visible changes in the testsuite. Say the word,
and I'll brush it up, regtest, submit it.
--
Pedro Alves