This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[commit] signal trampoline frame cache corruption
- From: PAUL GILLIAM <pgilliam at us dot ibm dot com>
- To: gdb-patches at sourceware dot org, Daniel Jacobowitz <drow at false dot org>
- Cc: Mark Kettenis <mark dot kettenis at xs4all dot nl>, Daniel Jacobowitz <drow at false dot org>
- Date: Mon, 13 Nov 2006 09:35:27 -0800
- Subject: [commit] signal trampoline frame cache corruption
- References: <1162323227.3428.9.camel@dufur.beaverton.ibm.com> <200610312328.k9VNScRC012608@elgar.sibelius.xs4all.nl> <1162576236.3428.17.camel@dufur.beaverton.ibm.com> <20061110212202.GF1115@nevyn.them.org>
- Reply-to: pgilliam at us dot ibm dot com
Thanks Mark and Daniel.
I have committed the attached patch
-=# Paul Gilliam #=-
On Fri, 2006-11-10 at 16:22 -0500, Daniel Jacobowitz wrote:
> On Fri, Nov 03, 2006 at 09:50:36AM -0800, PAUL GILLIAM wrote:
> > Sorry about the formatting. I fixed that, and included a ChangeLog
> > entry which I also forgot the first time.
> >
> > Now is it OK to commit?
>
> More formatting fixes:
>
> > 2006-11-03 Paul Gilliam <pgilliam@us.ibm.com>
>
> Two spaces before "<"...
>
> > * ppc-linux-tdep.c (ppc_linux_sigtramp_cache): Only
>
> ... but not after ":".
>
> > + if (ppc_floating_point_unit_p(gdbarch))
>
> Always a space before open parentheses.
>
> With those three fixed, feel free to repost and commit this.
>
2006-10-31 Paul Gilliam <pgilliam@us.ibm.com>
* ppc-linux-tdep.c (ppc_linux_sigtramp_cache): Don't futz with
the floating point registers if there aren't any.
Index: ppc-linux-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/ppc-linux-tdep.c,v
retrieving revision 1.78
diff -a -u -r1.78 ppc-linux-tdep.c
--- ppc-linux-tdep.c 18 Apr 2006 19:20:06 -0000 1.78
+++ ppc-linux-tdep.c 31 Oct 2006 19:30:12 -0000
@@ -916,14 +916,16 @@
trad_frame_set_reg_addr (this_cache, tdep->ppc_cr_regnum,
gpregs + 38 * tdep->wordsize);
- /* Floating point registers. */
- for (i = 0; i < 32; i++)
- {
- int regnum = i + FP0_REGNUM;
- trad_frame_set_reg_addr (this_cache, regnum, fpregs + i * tdep->wordsize);
- }
- trad_frame_set_reg_addr (this_cache, tdep->ppc_fpscr_regnum,
- fpregs + 32 * tdep->wordsize);
+ if (ppc_floating_point_unit_p (gdbarch)) {
+ /* Floating point registers. */
+ for (i = 0; i < 32; i++)
+ {
+ int regnum = i + FP0_REGNUM;
+ trad_frame_set_reg_addr (this_cache, regnum, fpregs + i * tdep->wordsize);
+ }
+ trad_frame_set_reg_addr (this_cache, tdep->ppc_fpscr_regnum,
+ fpregs + 32 * tdep->wordsize);
+ }
trad_frame_set_id (this_cache, frame_id_build (base, func));
}