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: [rfc] Fix register cache invalidation


Pedro Alves wrote:
> On Tuesday 14 July 2009 15:59:28, Ulrich Weigand wrote:
> 
> > when testing the Cell/B.E. combined debugger patches I ran into a situation
> > where registers_changed was not called soon enough.
> > 
> > A while ago I proposed a patch to simplify register invalidation (as part of
> > a infrun cleanup series):
> > http://sourceware.org/ml/gdb-patches/2008-12/msg00120.html
> > This cleanup actually fixes the combined debugger problem as well.
> 
> Curious.  Are we sure we're not hidding some other bug then?

Hmm, interestingly enough I cannot reproduce the problem I was seeing with
the current combined debugger patches ...

The problem I had was basically that during adjust_pc_after_break I was
getting the wrong architecture (and thus the wrong decr_pc_after_break
value) because the old architecture had been cached, and no registers_changed
call happened in between.

As the problem disappeared when applying the cleanup patch (which I'd
intended to do anyway), I didn't investigate in more detail.  Unfortunately,
the underlying problem seems to have gone away anyway in the meantime ...

> > At the time, Pedro pointed out that parts of that patch weren't safe in the
> > non-stop case.  The version below omits those parts, and only changes code
> > to simplify calling registers_changed and resetting waiton_ptid.
> 
> > Tested on powerpc64-linux with no regressions.
> > Any comments?  I'd like to commit this in a couple of days.
> 
> I like it!

OK, thanks for looking at the patch!

I've checked this in now.

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  GNU Toolchain for Linux on System z and Cell BE
  Ulrich.Weigand@de.ibm.com


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