diff options
-rw-r--r-- | gdb/ChangeLog | 15 | ||||
-rw-r--r-- | gdb/alphanbsd-tdep.c | 4 | ||||
-rw-r--r-- | gdb/armbsd-tdep.c | 4 | ||||
-rw-r--r-- | gdb/corelow.c | 5 | ||||
-rw-r--r-- | gdb/hppa-hpux-tdep.c | 4 | ||||
-rw-r--r-- | gdb/hppaobsd-tdep.c | 4 | ||||
-rw-r--r-- | gdb/m68kbsd-tdep.c | 4 | ||||
-rw-r--r-- | gdb/mipsnbsd-tdep.c | 4 | ||||
-rw-r--r-- | gdb/regset.h | 7 |
9 files changed, 45 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 822d0d4..6250534 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,20 @@ 2015-02-04 Andreas Arnez <arnez@linux.vnet.ibm.com> + * regset.h (struct regset): Add flags field. + (REGSET_VARIABLE_SIZE): New value for a regset's flags field. + * corelow.c (get_core_register_section): Add warning if the size + exceeds the requested size and the regset does not have the + REGSET_VARIABLE_SIZE flag set. + * alphanbsd-tdep.c (alphanbsd_gregset): Add REGSET_VARIABLE_SIZE + flag. + * armbsd-tdep.c (armbsd_gregset): Likewise. + * hppa-hpux-tdep.c (hppa_hpux_regset): Likewise. + * hppaobsd-tdep.c (hppaobsd_gregset): Likewise. + * m68kbsd-tdep.c (m68kbsd_gregset): Likewise. + * mipsnbsd-tdep.c (mipsnbsd_gregset): Likewise. + +2015-02-04 Andreas Arnez <arnez@linux.vnet.ibm.com> + * amd64-linux-tdep.c (amd64_linux_iterate_over_regset_sections): For ".reg-xstate", explicitly specify the requested section size via X86_XSTATE_SIZE instead of just 0 on input and diff --git a/gdb/alphanbsd-tdep.c b/gdb/alphanbsd-tdep.c index 6b13fad..69be265 100644 --- a/gdb/alphanbsd-tdep.c +++ b/gdb/alphanbsd-tdep.c @@ -145,7 +145,9 @@ alphanbsd_supply_gregset (const struct regset *regset, static const struct regset alphanbsd_gregset = { NULL, - alphanbsd_supply_gregset + alphanbsd_supply_gregset, + NULL, + REGSET_VARIABLE_SIZE }; static const struct regset alphanbsd_fpregset = diff --git a/gdb/armbsd-tdep.c b/gdb/armbsd-tdep.c index 7923cad..c043b51 100644 --- a/gdb/armbsd-tdep.c +++ b/gdb/armbsd-tdep.c @@ -98,7 +98,9 @@ armbsd_supply_gregset (const struct regset *regset, static const struct regset armbsd_gregset = { NULL, - armbsd_supply_gregset + armbsd_supply_gregset, + NULL, + REGSET_VARIABLE_SIZE }; static const struct regset armbsd_fpregset = diff --git a/gdb/corelow.c b/gdb/corelow.c index 6a67a98..c7d4318 100644 --- a/gdb/corelow.c +++ b/gdb/corelow.c @@ -536,6 +536,11 @@ get_core_register_section (struct regcache *regcache, warning (_("Section `%s' in core file too small."), section_name); return; } + if (size != min_size && !(regset->flags & REGSET_VARIABLE_SIZE)) + { + warning (_("Unexpected size of section `%s' in core file."), + section_name); + } contents = alloca (size); if (! bfd_get_section_contents (core_bfd, section, contents, diff --git a/gdb/hppa-hpux-tdep.c b/gdb/hppa-hpux-tdep.c index 0c8575d..3c0f390 100644 --- a/gdb/hppa-hpux-tdep.c +++ b/gdb/hppa-hpux-tdep.c @@ -1367,7 +1367,9 @@ hppa_hpux_supply_save_state (const struct regset *regset, static const struct regset hppa_hpux_regset = { NULL, - hppa_hpux_supply_save_state + hppa_hpux_supply_save_state, + NULL, + REGSET_VARIABLE_SIZE }; static void diff --git a/gdb/hppaobsd-tdep.c b/gdb/hppaobsd-tdep.c index 9ec7fdf..c9bc1bf 100644 --- a/gdb/hppaobsd-tdep.c +++ b/gdb/hppaobsd-tdep.c @@ -131,7 +131,9 @@ hppaobsd_supply_fpregset (const struct regset *regset, static const struct regset hppaobsd_gregset = { NULL, - hppaobsd_supply_gregset + hppaobsd_supply_gregset, + NULL, + REGSET_VARIABLE_SIZE }; static const struct regset hppaobsd_fpregset = diff --git a/gdb/m68kbsd-tdep.c b/gdb/m68kbsd-tdep.c index b1ae4c1..ae0cecf 100644 --- a/gdb/m68kbsd-tdep.c +++ b/gdb/m68kbsd-tdep.c @@ -105,7 +105,9 @@ m68kbsd_supply_gregset (const struct regset *regset, static const struct regset m68kbsd_gregset = { NULL, - m68kbsd_supply_gregset + m68kbsd_supply_gregset, + NULL, + REGSET_VARIABLE_SIZE }; static const struct regset m68kbsd_fpregset = diff --git a/gdb/mipsnbsd-tdep.c b/gdb/mipsnbsd-tdep.c index ee68f3d..d15c88c 100644 --- a/gdb/mipsnbsd-tdep.c +++ b/gdb/mipsnbsd-tdep.c @@ -103,7 +103,9 @@ mipsnbsd_supply_gregset (const struct regset *regset, static const struct regset mipsnbsd_gregset = { NULL, - mipsnbsd_supply_gregset + mipsnbsd_supply_gregset, + NULL, + REGSET_VARIABLE_SIZE }; static const struct regset mipsnbsd_fpregset = diff --git a/gdb/regset.h b/gdb/regset.h index 3585322..d6edaa5 100644 --- a/gdb/regset.h +++ b/gdb/regset.h @@ -43,6 +43,13 @@ struct regset /* Function collecting values in a register set from a register cache. */ collect_regset_ftype *collect_regset; + + unsigned flags; }; +/* Values for a regset's 'flags' field. */ + +#define REGSET_VARIABLE_SIZE 1 /* Accept a larger regset section size + in a core file without warning. */ + #endif /* regset.h */ |