From 5da6eb0a109d09cf64a82417e92bdf2f80bbda0e Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Tue, 11 Jun 2013 17:26:25 +0000 Subject: [PATCH] Fix regression from multi-arch patch. This fixes the regression reported at . GDBserver was reaching: static int regsets_fetch_inferior_registers (struct regsets_info *regsets_info, struct regcache *regcache) { struct regset_info *regset; int saw_general_regs = 0; int pid; struct iovec iov; regset = regsets_info->regsets; pid = lwpid_of (get_thread_lwp (current_inferior)); while (regset->size >= 0) { void *buf, *data; int nt_type, res; if (regset->size == 0 || regsets_info->disabled_regsets[regset - regsets_info->regsets]) { >>>>>>> regset ++; <<<<<<< HERE continue; } Because info->disabled_regsets[] was not being initialized, and that causes all sorts of wrong. gdb/gdbserver/ 2013-06-11 Pedro Alves * linux-low.c (initialize_regsets_info): Use xcalloc instead of xmalloc. --- gdb/gdbserver/ChangeLog | 5 +++++ gdb/gdbserver/linux-low.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index c73cccf..169bb53 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,5 +1,10 @@ 2013-06-11 Pedro Alves + * linux-low.c (initialize_regsets_info): Use xcalloc instead of + xmalloc. + +2013-06-11 Pedro Alves + * linux-x86-low.c (initialize_low_arch): Call init_registers_x32_avx_linux. diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index f7e510e..2114b07 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -6072,7 +6072,7 @@ initialize_regsets_info (struct regsets_info *info) info->regsets[info->num_regsets].size >= 0; info->num_regsets++) ; - info->disabled_regsets = xmalloc (info->num_regsets); + info->disabled_regsets = xcalloc (1, info->num_regsets); } #endif -- 2.7.4