This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [rfc] Fix register cache invalidation
- From: "Ulrich Weigand" <uweigand at de dot ibm dot com>
- To: pedro at codesourcery dot com (Pedro Alves)
- Cc: gdb-patches at sourceware dot org
- Date: Mon, 20 Jul 2009 17:07:54 +0200 (CEST)
- Subject: 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