From bdec2917b1e94c7198ba39919f45060067952f43 Mon Sep 17 00:00:00 2001 From: Luis Machado Date: Fri, 15 Jan 2021 13:16:04 -0300 Subject: Convert some frame functions to use gdb::array_view. This patch converts the most obvious functions from gdb/frame.h to use the gdb::array_view abstraction. I've converted the ones that used buffer + length. There are others using only the buffer, with an implicit size. I did not touch those for now. But it would be nice to pass the size for safety. Tested with --enable-targets=all on Ubuntu 18.04/20.04 aarch64-linux. gdb/ChangeLog 2021-01-19 Luis Machado * frame.h (get_frame_register_bytes): Pass a gdb::array_view instead of buffer + length. (put_frame_register_bytes): Likewise. Adjust documentation. (get_frame_memory): Pass a gdb::array_view instead of buffer + length. (safe_frame_unwind_memory): Likewise. * frame.c (get_frame_register_bytes, put_frame_register_bytes) (get_frame_memory, safe_frame_unwind_memory): Adjust to use gdb::array_view. * amd64-fbsd-tdep.c (amd64fbsd_sigtramp_p): Likewise. * amd64-linux-tdep.c (amd64_linux_sigtramp_start): Likewise. * amd64-obsd-tdep.c (amd64obsd_sigtramp_p): Likewise. * arc-linux-tdep.c (arc_linux_is_sigtramp): Likewise. * cris-tdep.c (cris_sigtramp_start, cris_rt_sigtramp_start): Likewise. * dwarf2/loc.c (rw_pieced_value): Likewise. * hppa-tdep.c (hppa_frame_cache): Likewise. * i386-fbsd-tdep.c (i386fbsd_sigtramp_p): Likewise. * i386-gnu-tdep.c (i386_gnu_sigtramp_start): Likewise. * i386-linux-tdep.c (i386_linux_sigtramp_start) (i386_linux_rt_sigtramp_start): Likewise. * i386-obsd-tdep.c (i386obsd_sigtramp_p): Likewise. * i386-tdep.c (i386_register_to_value): Likewise. * i387-tdep.c (i387_register_to_value): Likewise. * ia64-tdep.c (ia64_register_to_value): Likewise. * m32r-linux-tdep.c (m32r_linux_sigtramp_start) (m32r_linux_rt_sigtramp_start): Likewise. * m68k-linux-tdep.c (m68k_linux_pc_in_sigtramp): Likewise. * m68k-tdep.c (m68k_register_to_value): Likewise. * mips-tdep.c (mips_register_to_value) (mips_value_to_register): Likewise. * ppc-fbsd-tdep.c (ppcfbsd_sigtramp_frame_sniffer) (ppcfbsd_sigtramp_frame_cache): Likewise. * ppc-obsd-tdep.c (ppcobsd_sigtramp_frame_sniffer) (ppcobsd_sigtramp_frame_cache): Likewise. * rs6000-tdep.c (rs6000_in_function_epilogue_frame_p) (rs6000_register_to_value): Likewise. * tilegx-tdep.c (tilegx_analyze_prologue): Likewise. * tramp-frame.c (tramp_frame_start): Likewise. * valops.c (value_assign): Likewise. --- gdb/frame.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'gdb/frame.h') diff --git a/gdb/frame.h b/gdb/frame.h index 7028b26..597a459 100644 --- a/gdb/frame.h +++ b/gdb/frame.h @@ -653,15 +653,15 @@ extern void put_frame_register (struct frame_info *frame, int regnum, contents are optimized out or unavailable, set *OPTIMIZEDP, *UNAVAILABLEP accordingly. */ extern bool get_frame_register_bytes (frame_info *frame, int regnum, - CORE_ADDR offset, int len, - gdb_byte *myaddr, + CORE_ADDR offset, + gdb::array_view buffer, int *optimizedp, int *unavailablep); -/* Write LEN bytes to one or multiple registers starting with REGNUM - in frame FRAME, starting at OFFSET, into BUF. */ +/* Write bytes from BUFFER to one or multiple registers starting with REGNUM + in frame FRAME, starting at OFFSET. */ extern void put_frame_register_bytes (struct frame_info *frame, int regnum, - CORE_ADDR offset, int len, - const gdb_byte *myaddr); + CORE_ADDR offset, + gdb::array_view buffer); /* Unwind the PC. Strictly speaking return the resume address of the calling frame. For GDB, `pc' is the resume address and not a @@ -687,7 +687,7 @@ extern void frame_pop (struct frame_info *frame); adaptor frames this should be ok. */ extern void get_frame_memory (struct frame_info *this_frame, CORE_ADDR addr, - gdb_byte *buf, int len); + gdb::array_view buffer); extern LONGEST get_frame_memory_signed (struct frame_info *this_frame, CORE_ADDR memaddr, int len); extern ULONGEST get_frame_memory_unsigned (struct frame_info *this_frame, @@ -696,7 +696,7 @@ extern ULONGEST get_frame_memory_unsigned (struct frame_info *this_frame, /* Same as above, but return true zero when the entire memory read succeeds, false otherwise. */ extern bool safe_frame_unwind_memory (frame_info *this_frame, CORE_ADDR addr, - gdb_byte *buf, int len); + gdb::array_view buffer); /* Return this frame's architecture. */ extern struct gdbarch *get_frame_arch (struct frame_info *this_frame); -- cgit v1.1