[RFA] dummy frame handling cleanup, plus inferior fun call signal handling improvement

Pedro Alves pedro@codesourcery.com
Fri Dec 5 00:37:00 GMT 2008


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



More information about the Gdb-patches mailing list