summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@efficios.com>2020-01-13 18:12:08 -0500
committerSimon Marchi <simon.marchi@efficios.com>2020-01-13 18:12:08 -0500
commit0cac9354bfb07a5cf53d70dbefaa35c6afa7da0a (patch)
tree92db38d9e027bd2eea944586d3f1aed2aa10472d
parent9a6d629ccf328e3f041c3fcb7e91f49a5d72d0fb (diff)
downloadbinutils-gdb-0cac9354bfb07a5cf53d70dbefaa35c6afa7da0a.tar.gz
gdb: use gdb::byte_vector instead of std::vector<char> 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) <core_read_registers>: 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.
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/arm-nbsd-nat.c2
-rw-r--r--gdb/corelow.c2
-rw-r--r--gdb/cris-tdep.c2
-rw-r--r--gdb/gdbcore.h2
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 <simon.marchi@efficios.com>
+
+ * gdbcore.h (struct core_fns) <core_read_registers>: 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 <andrew.burgess@embecosm.com>
* 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<char> 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);