This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: SPARC GDB Failure
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: Joel Sherrill <joel dot sherrill at oarcorp dot com>
- Cc: "gdb at sourceware dot org" <gdb at sourceware dot org>, Ralf Corsepius <ralf dot corsepius at rtems dot org>, gdb-patches at sourceware dot org
- Date: Mon, 7 Sep 2009 18:45:28 +0200
- Subject: Re: SPARC GDB Failure
- References: <4AA5161D.1020102@oarcorp.com>
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);