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: [patch] Backtrace prints wrong argument value


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


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