SPARC GDB Failure

Doug Evans dje@google.com
Mon Sep 7 17:44:00 GMT 2009


On Mon, Sep 7, 2009 at 9:45 AM, Jan Kratochvil<jan.kratochvil@redhat.com> wrote:
> On Mon, 07 Sep 2009 16:18:05 +0200, Joel Sherrill wrote:
>> But sparc/sis core dumps in gdb instantly.
>
> It looks as the ia64 crash:
>        http://sourceware.org/ml/gdb-patches/2009-08/msg00221.html
>
> I grepped it before but not well enough, now used:
>        $ grep -il 'malloc.*tdep' *.c|xargs grep -il '! *tdep'
>        m68k-tdep.c
>        sparc-tdep.c
>
> I think the patch should go in nonetheless and I even hope it fixes it.
>
> No testing was made.
>
>
> Thanks,
> Jan
>
>
> gdb/
> 2009-09-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
>
>        Fix start crash on unitialized memory on m68k and sparc.
>        * m68k-tdep.c (m68k_gdbarch_init): Allocate TDEP as cleared.
>        * sparc-tdep.c (sparc32_gdbarch_init): Allocate TDEP as cleared.
>        Remove explicit clearing of TDEP fields.
>
> --- a/gdb/m68k-tdep.c
> +++ b/gdb/m68k-tdep.c
> @@ -1160,7 +1160,7 @@ m68k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
>       break;
>     }
>
> -  tdep = xmalloc (sizeof (struct gdbarch_tdep));
> +  tdep = xzalloc (sizeof (struct gdbarch_tdep));
>   gdbarch = gdbarch_alloc (&info, tdep);
>   tdep->fpregs_present = has_fp;
>   tdep->flavour = flavour;
> --- a/gdb/sparc-tdep.c
> +++ b/gdb/sparc-tdep.c
> @@ -1377,16 +1377,11 @@ sparc32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
>     return arches->gdbarch;
>
>   /* Allocate space for the new architecture.  */
> -  tdep = XMALLOC (struct gdbarch_tdep);
> +  tdep = XZALLOC (struct gdbarch_tdep);
>   gdbarch = gdbarch_alloc (&info, tdep);
>
>   tdep->pc_regnum = SPARC32_PC_REGNUM;
>   tdep->npc_regnum = SPARC32_NPC_REGNUM;
> -  tdep->gregset = NULL;
> -  tdep->sizeof_gregset = 0;
> -  tdep->fpregset = NULL;
> -  tdep->sizeof_fpregset = 0;
> -  tdep->plt_entry_size = 0;
>   tdep->step_trap = sparc_step_trap;
>
>   set_gdbarch_long_double_bit (gdbarch, 128);
>

It seems like all alloc's of gdbarch_tdep should be zalloc'd.
[But I wouldn't make that a requirement of this patch.]

The patch is fine with me.
I think, though, the changelog shouldn't claim it fixes something
unless that's been verified.



More information about the Gdb-patches mailing list