From 0cac9354bfb07a5cf53d70dbefaa35c6afa7da0a Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Mon, 13 Jan 2020 18:12:08 -0500 Subject: [PATCH] gdb: use gdb::byte_vector instead of std::vector in core_target::get_core_register_section Since the data held by the `contents` variable is arbitrary binary data, it should have gdb_byte elements, not char elements. Also, using gdb::byte_vector is preferable, since it doesn't unnecessarily zero-initialize the values. Instead of adding a cast in the call to m_core_vec->core_read_registers, I have changed core_read_registers' argument to be a gdb_byte* instead of a char*. gdb/ChangeLog: * gdbcore.h (struct core_fns) : Change core_reg_sect type to gdb_byte *. * arm-nbsd-nat.c (fetch_elfcore_registers): Likewise. * cris-tdep.c (fetch_core_registers): Likewise. * corelow.c (core_target::get_core_register_section): Change type of `contents` to gdb::byte_vector. --- gdb/ChangeLog | 9 +++++++++ gdb/arm-nbsd-nat.c | 2 +- gdb/corelow.c | 2 +- gdb/cris-tdep.c | 2 +- gdb/gdbcore.h | 2 +- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f966da85c8a..2ec7a61c3b6 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2020-01-13 Simon Marchi + + * gdbcore.h (struct core_fns) : Change + core_reg_sect type to gdb_byte *. + * arm-nbsd-nat.c (fetch_elfcore_registers): Likewise. + * cris-tdep.c (fetch_core_registers): Likewise. + * corelow.c (core_target::get_core_register_section): Change + type of `contents` to gdb::byte_vector. + 2020-01-13 Andrew Burgess * tui/tui-wingeneral.c (box_win): Position the title in the center diff --git a/gdb/arm-nbsd-nat.c b/gdb/arm-nbsd-nat.c index 1d058a99ac1..00f919194b9 100644 --- a/gdb/arm-nbsd-nat.c +++ b/gdb/arm-nbsd-nat.c @@ -397,7 +397,7 @@ arm_nbsd_nat_target::store_registers (struct regcache *regcache, int regno) static void fetch_elfcore_registers (struct regcache *regcache, - char *core_reg_sect, unsigned core_reg_size, + gdb_byte *core_reg_sect, unsigned core_reg_size, int which, CORE_ADDR ignore) { struct reg gregset; diff --git a/gdb/corelow.c b/gdb/corelow.c index 0418ec2506a..5cd058d5993 100644 --- a/gdb/corelow.c +++ b/gdb/corelow.c @@ -621,7 +621,7 @@ core_target::get_core_register_section (struct regcache *regcache, section_name.c_str ()); } - std::vector contents (size); + gdb::byte_vector contents (size); if (!bfd_get_section_contents (core_bfd, section, contents.data (), (file_ptr) 0, size)) { diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c index 22b4db917ca..6885d237f3a 100644 --- a/gdb/cris-tdep.c +++ b/gdb/cris-tdep.c @@ -3793,7 +3793,7 @@ cris_supply_gregset (struct regcache *regcache, cris_elf_gregset_t *gregsetp) static void fetch_core_registers (struct regcache *regcache, - char *core_reg_sect, unsigned core_reg_size, + gdb_byte *core_reg_sect, unsigned core_reg_size, int which, CORE_ADDR reg_addr) { cris_elf_gregset_t gregset; diff --git a/gdb/gdbcore.h b/gdb/gdbcore.h index 5b216e9c1c9..66e81dfe950 100644 --- a/gdb/gdbcore.h +++ b/gdb/gdbcore.h @@ -213,7 +213,7 @@ struct core_fns address X is at location core_reg_sect+x+reg_addr. */ void (*core_read_registers) (struct regcache *regcache, - char *core_reg_sect, + gdb_byte *core_reg_sect, unsigned core_reg_size, int which, CORE_ADDR reg_addr); -- 2.30.2