Re: [patch] Backtrace prints wrong argument value

Daniel Jacobowitz
2007-09-16T19:45:22Z

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