This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch] Backtrace prints wrong argument value
- From: Daniel Jacobowitz <drow at false dot org>
- To: Luis Machado <luisgpm at linux dot vnet dot ibm dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Sun, 16 Sep 2007 15:45:10 -0400
- Subject: Re: [patch] Backtrace prints wrong argument value
- References: <1177527233.12599.42.camel@localhost> <20070425191304.GA1283@caradoc.them.org> <1179293640.4323.16.camel@localhost> <20070516144250.GD24682@caradoc.them.org> <1189694765.4564.5.camel@localhost>
On Thu, Sep 13, 2007 at 11:46:05AM -0300, Luis Machado wrote:
> :ADDPATCH PowerPC-64:
>
> Hi,
>
> Bringing back this topic, i've written a patch to address this issue on
> ppc's side, providing a function to specify call-clobbered registers
> based on the ABI, similar to the S390's.
:REVIEWMAIL:
I guess this works, then? That's great.
> 2007-09-13 Luis Machado <luisgpm@br.ibm.com>
>
> * rs6000-tdep.c (ppc_dwarf2_frame_init_reg): New function.
> (rs6000_gdbarch_init): Install ppc_dwarf2_frame_init_reg as
> default dwarf2_frame_set_init_reg function.
ChangeLog entries should be tab indented - you probably know this and
your mailer ate the tabs? Indentation all over your patch is wrong,
too.
> +/* DWARF-2 frame support. Used to handle the detection of
> + clobbered registers during function calls. */
Two spaces after periods, please. More occurances below.
> + static void
No leading space there.
> +ppc_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
> + struct dwarf2_frame_state_reg *reg,
> + struct frame_info *next_frame)
Those lines don't line up. More occurances below.
> + /* Call-saved GP registers. */
> + if ((regnum >= (tdep->ppc_gp0_regnum + 14)
> + && regnum <= (tdep->ppc_gp0_regnum + 31))
> + || (regnum == (tdep->ppc_gp0_regnum + 1)))
> + reg->how = DWARF2_FRAME_REG_SAME_VALUE;
You don't need the parentheses around (tdep->ppc_gp0_regnum + 14), et
cetera; >= and <= are very low precedence.
> @@ -3790,6 +3852,10 @@
> tdep->ppc_vr0_regnum = 71;
> tdep->ppc_vrsave_regnum = 104;
> }
> +
> + /* Frame handling. */
> + dwarf2_frame_set_init_reg (gdbarch, ppc_dwarf2_frame_init_reg);
> +
> /* Fall Thru */
> case GDB_OSABI_NETBSD_AOUT:
> case GDB_OSABI_NETBSD_ELF:
I don't think this should be GNU/Linux specific, so it should probably
be elsewhere (before gdbarch_init_osabi).
--
Daniel Jacobowitz
CodeSourcery