gdb: introduce displaced_step_closure_up type alias

To help with readability, add the type displaced_step_closure_up, an
alias for std::unique_ptr<displaced_step_closure>, and use it throughout
the code base.

gdb/ChangeLog:

	* aarch64-tdep.c (aarch64_displaced_step_copy_insn): Use
	displaced_step_closure_up.
	* aarch64-tdep.h (aarch64_displaced_step_copy_insn): Likewise.
	(struct displaced_step_closure_up):
	* amd64-tdep.c (amd64_displaced_step_copy_insn): Likewise.
	* amd64-tdep.h (amd64_displaced_step_copy_insn): Likewise.
	* arm-linux-tdep.c (arm_linux_displaced_step_copy_insn):
	Likewise.
	* gdbarch.sh (displaced_step_copy_insn): Likewise.
	* gdbarch.c, gdbarch.h: Re-generate.
	* i386-linux-tdep.c (i386_linux_displaced_step_copy_insn): Use
	displaced_step_closure_up.
	* i386-tdep.c (i386_displaced_step_copy_insn): Likewise.
	* i386-tdep.h (i386_displaced_step_copy_insn): Likewise.
	* infrun.h (displaced_step_closure_up): New type alias.
	(struct displaced_step_inferior_state) <step_closure>: Change
	type to displaced_step_closure_up.
	* rs6000-tdep.c (ppc_displaced_step_copy_insn): Use
	displaced_step_closure_up.
	* s390-tdep.c (s390_displaced_step_copy_insn): Likewise.
This commit is contained in:
Simon Marchi 2020-02-14 16:45:40 -05:00
parent 1a627e7e6c
commit fdb61c6c39
15 changed files with 46 additions and 18 deletions

View File

@ -1,3 +1,26 @@
2020-02-14 Simon Marchi <simon.marchi@efficios.com>
* aarch64-tdep.c (aarch64_displaced_step_copy_insn): Use
displaced_step_closure_up.
* aarch64-tdep.h (aarch64_displaced_step_copy_insn): Likewise.
(struct displaced_step_closure_up):
* amd64-tdep.c (amd64_displaced_step_copy_insn): Likewise.
* amd64-tdep.h (amd64_displaced_step_copy_insn): Likewise.
* arm-linux-tdep.c (arm_linux_displaced_step_copy_insn):
Likewise.
* gdbarch.sh (displaced_step_copy_insn): Likewise.
* gdbarch.c, gdbarch.h: Re-generate.
* i386-linux-tdep.c (i386_linux_displaced_step_copy_insn): Use
displaced_step_closure_up.
* i386-tdep.c (i386_displaced_step_copy_insn): Likewise.
* i386-tdep.h (i386_displaced_step_copy_insn): Likewise.
* infrun.h (displaced_step_closure_up): New type alias.
(struct displaced_step_inferior_state) <step_closure>: Change
type to displaced_step_closure_up.
* rs6000-tdep.c (ppc_displaced_step_copy_insn): Use
displaced_step_closure_up.
* s390-tdep.c (s390_displaced_step_copy_insn): Likewise.
2020-02-14 Tom Tromey <tom@tromey.com> 2020-02-14 Tom Tromey <tom@tromey.com>
* minidebug.c (gnu_debug_key): New global. * minidebug.c (gnu_debug_key): New global.

View File

@ -2999,7 +2999,7 @@ static const struct aarch64_insn_visitor visitor =
/* Implement the "displaced_step_copy_insn" gdbarch method. */ /* Implement the "displaced_step_copy_insn" gdbarch method. */
std::unique_ptr<displaced_step_closure> displaced_step_closure_up
aarch64_displaced_step_copy_insn (struct gdbarch *gdbarch, aarch64_displaced_step_copy_insn (struct gdbarch *gdbarch,
CORE_ADDR from, CORE_ADDR to, CORE_ADDR from, CORE_ADDR to,
struct regcache *regs) struct regcache *regs)

View File

@ -23,6 +23,7 @@
#define AARCH64_TDEP_H #define AARCH64_TDEP_H
#include "arch/aarch64.h" #include "arch/aarch64.h"
#include "infrun.h"
/* Forward declarations. */ /* Forward declarations. */
struct gdbarch; struct gdbarch;
@ -106,7 +107,7 @@ const target_desc *aarch64_read_description (uint64_t vq, bool pauth_p);
extern int aarch64_process_record (struct gdbarch *gdbarch, extern int aarch64_process_record (struct gdbarch *gdbarch,
struct regcache *regcache, CORE_ADDR addr); struct regcache *regcache, CORE_ADDR addr);
struct std::unique_ptr<displaced_step_closure> displaced_step_closure_up
aarch64_displaced_step_copy_insn (struct gdbarch *gdbarch, aarch64_displaced_step_copy_insn (struct gdbarch *gdbarch,
CORE_ADDR from, CORE_ADDR to, CORE_ADDR from, CORE_ADDR to,
struct regcache *regs); struct regcache *regs);

View File

@ -1465,7 +1465,7 @@ fixup_displaced_copy (struct gdbarch *gdbarch,
} }
} }
std::unique_ptr<displaced_step_closure> displaced_step_closure_up
amd64_displaced_step_copy_insn (struct gdbarch *gdbarch, amd64_displaced_step_copy_insn (struct gdbarch *gdbarch,
CORE_ADDR from, CORE_ADDR to, CORE_ADDR from, CORE_ADDR to,
struct regcache *regs) struct regcache *regs)

View File

@ -26,6 +26,7 @@ struct frame_info;
struct regcache; struct regcache;
#include "i386-tdep.h" #include "i386-tdep.h"
#include "infrun.h"
/* Register numbers of various important registers. */ /* Register numbers of various important registers. */
@ -87,7 +88,7 @@ enum amd64_regnum
#define AMD64_NUM_REGS (AMD64_GSBASE_REGNUM + 1) #define AMD64_NUM_REGS (AMD64_GSBASE_REGNUM + 1)
extern std::unique_ptr<displaced_step_closure> amd64_displaced_step_copy_insn extern displaced_step_closure_up amd64_displaced_step_copy_insn
(struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to,
struct regcache *regs); struct regcache *regs);
extern void amd64_displaced_step_fixup (struct gdbarch *gdbarch, extern void amd64_displaced_step_fixup (struct gdbarch *gdbarch,

View File

@ -1103,7 +1103,7 @@ arm_catch_kernel_helper_return (struct gdbarch *gdbarch, CORE_ADDR from,
the program has stepped into a Linux kernel helper routine (which must be the program has stepped into a Linux kernel helper routine (which must be
handled as a special case). */ handled as a special case). */
static std::unique_ptr<displaced_step_closure> static displaced_step_closure_up
arm_linux_displaced_step_copy_insn (struct gdbarch *gdbarch, arm_linux_displaced_step_copy_insn (struct gdbarch *gdbarch,
CORE_ADDR from, CORE_ADDR to, CORE_ADDR from, CORE_ADDR to,
struct regcache *regs) struct regcache *regs)

View File

@ -3936,7 +3936,7 @@ gdbarch_displaced_step_copy_insn_p (struct gdbarch *gdbarch)
return gdbarch->displaced_step_copy_insn != NULL; return gdbarch->displaced_step_copy_insn != NULL;
} }
std::unique_ptr<displaced_step_closure> displaced_step_closure_up
gdbarch_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs) gdbarch_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
{ {
gdb_assert (gdbarch != NULL); gdb_assert (gdbarch != NULL);

View File

@ -39,6 +39,7 @@
#include "frame.h" #include "frame.h"
#include "dis-asm.h" #include "dis-asm.h"
#include "gdb_obstack.h" #include "gdb_obstack.h"
#include "infrun.h"
struct floatformat; struct floatformat;
struct ui_file; struct ui_file;
@ -55,7 +56,6 @@ struct obstack;
struct bp_target_info; struct bp_target_info;
struct target_desc; struct target_desc;
struct symbol; struct symbol;
struct displaced_step_closure;
struct syscall; struct syscall;
struct agent_expr; struct agent_expr;
struct axs_value; struct axs_value;
@ -1036,8 +1036,8 @@ extern void set_gdbarch_max_insn_length (struct gdbarch *gdbarch, ULONGEST max_i
extern int gdbarch_displaced_step_copy_insn_p (struct gdbarch *gdbarch); extern int gdbarch_displaced_step_copy_insn_p (struct gdbarch *gdbarch);
typedef std::unique_ptr<displaced_step_closure> (gdbarch_displaced_step_copy_insn_ftype) (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs); typedef displaced_step_closure_up (gdbarch_displaced_step_copy_insn_ftype) (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs);
extern std::unique_ptr<displaced_step_closure> gdbarch_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs); extern displaced_step_closure_up gdbarch_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, struct regcache *regs);
extern void set_gdbarch_displaced_step_copy_insn (struct gdbarch *gdbarch, gdbarch_displaced_step_copy_insn_ftype *displaced_step_copy_insn); extern void set_gdbarch_displaced_step_copy_insn (struct gdbarch *gdbarch, gdbarch_displaced_step_copy_insn_ftype *displaced_step_copy_insn);
/* Return true if GDB should use hardware single-stepping to execute /* Return true if GDB should use hardware single-stepping to execute

View File

@ -816,7 +816,7 @@ V;ULONGEST;max_insn_length;;;0;0
# If the instruction cannot execute out of line, return NULL. The # If the instruction cannot execute out of line, return NULL. The
# core falls back to stepping past the instruction in-line instead in # core falls back to stepping past the instruction in-line instead in
# that case. # that case.
M;std::unique_ptr<displaced_step_closure>;displaced_step_copy_insn;CORE_ADDR from, CORE_ADDR to, struct regcache *regs;from, to, regs M;displaced_step_closure_up;displaced_step_copy_insn;CORE_ADDR from, CORE_ADDR to, struct regcache *regs;from, to, regs
# Return true if GDB should use hardware single-stepping to execute # Return true if GDB should use hardware single-stepping to execute
# the displaced instruction identified by CLOSURE. If false, # the displaced instruction identified by CLOSURE. If false,
@ -1312,6 +1312,7 @@ cat <<EOF
#include "frame.h" #include "frame.h"
#include "dis-asm.h" #include "dis-asm.h"
#include "gdb_obstack.h" #include "gdb_obstack.h"
#include "infrun.h"
struct floatformat; struct floatformat;
struct ui_file; struct ui_file;
@ -1328,7 +1329,6 @@ struct obstack;
struct bp_target_info; struct bp_target_info;
struct target_desc; struct target_desc;
struct symbol; struct symbol;
struct displaced_step_closure;
struct syscall; struct syscall;
struct agent_expr; struct agent_expr;
struct axs_value; struct axs_value;

View File

@ -36,6 +36,7 @@
#include "symtab.h" #include "symtab.h"
#include "arch-utils.h" #include "arch-utils.h"
#include "xml-syscall.h" #include "xml-syscall.h"
#include "infrun.h"
#include "i387-tdep.h" #include "i387-tdep.h"
#include "gdbsupport/x86-xstate.h" #include "gdbsupport/x86-xstate.h"
@ -797,12 +798,12 @@ i386_linux_iterate_over_regset_sections (struct gdbarch *gdbarch,
which does not seem worth it. The same effect is achieved by patching that which does not seem worth it. The same effect is achieved by patching that
'nop' instruction there instead. */ 'nop' instruction there instead. */
static std::unique_ptr<displaced_step_closure> static displaced_step_closure_up
i386_linux_displaced_step_copy_insn (struct gdbarch *gdbarch, i386_linux_displaced_step_copy_insn (struct gdbarch *gdbarch,
CORE_ADDR from, CORE_ADDR to, CORE_ADDR from, CORE_ADDR to,
struct regcache *regs) struct regcache *regs)
{ {
std::unique_ptr<displaced_step_closure> closure_ displaced_step_closure_up closure_
= i386_displaced_step_copy_insn (gdbarch, from, to, regs); = i386_displaced_step_copy_insn (gdbarch, from, to, regs);
if (i386_linux_get_syscall_number_from_regcache (regs) != -1) if (i386_linux_get_syscall_number_from_regcache (regs) != -1)

View File

@ -798,7 +798,7 @@ i386_insn_is_jump (struct gdbarch *gdbarch, CORE_ADDR addr)
/* Some kernels may run one past a syscall insn, so we have to cope. */ /* Some kernels may run one past a syscall insn, so we have to cope. */
std::unique_ptr<displaced_step_closure> displaced_step_closure_up
i386_displaced_step_copy_insn (struct gdbarch *gdbarch, i386_displaced_step_copy_insn (struct gdbarch *gdbarch,
CORE_ADDR from, CORE_ADDR to, CORE_ADDR from, CORE_ADDR to,
struct regcache *regs) struct regcache *regs)

View File

@ -428,7 +428,7 @@ extern void
typedef buf_displaced_step_closure i386_displaced_step_closure; typedef buf_displaced_step_closure i386_displaced_step_closure;
extern std::unique_ptr<displaced_step_closure> i386_displaced_step_copy_insn extern displaced_step_closure_up i386_displaced_step_copy_insn
(struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to, (struct gdbarch *gdbarch, CORE_ADDR from, CORE_ADDR to,
struct regcache *regs); struct regcache *regs);
extern void i386_displaced_step_fixup (struct gdbarch *gdbarch, extern void i386_displaced_step_fixup (struct gdbarch *gdbarch,

View File

@ -265,6 +265,8 @@ struct displaced_step_closure
virtual ~displaced_step_closure () = 0; virtual ~displaced_step_closure () = 0;
}; };
using displaced_step_closure_up = std::unique_ptr<displaced_step_closure>;
/* A simple displaced step closure that contains only a byte buffer. */ /* A simple displaced step closure that contains only a byte buffer. */
struct buf_displaced_step_closure : displaced_step_closure struct buf_displaced_step_closure : displaced_step_closure
@ -310,7 +312,7 @@ struct displaced_step_inferior_state
/* The closure provided gdbarch_displaced_step_copy_insn, to be used /* The closure provided gdbarch_displaced_step_copy_insn, to be used
for post-step cleanup. */ for post-step cleanup. */
std::unique_ptr<displaced_step_closure> step_closure; displaced_step_closure_up step_closure;
/* The address of the original instruction, and the copy we /* The address of the original instruction, and the copy we
made. */ made. */

View File

@ -855,7 +855,7 @@ typedef buf_displaced_step_closure ppc_displaced_step_closure;
/* We can't displaced step atomic sequences. */ /* We can't displaced step atomic sequences. */
static std::unique_ptr<displaced_step_closure> static displaced_step_closure_up
ppc_displaced_step_copy_insn (struct gdbarch *gdbarch, ppc_displaced_step_copy_insn (struct gdbarch *gdbarch,
CORE_ADDR from, CORE_ADDR to, CORE_ADDR from, CORE_ADDR to,
struct regcache *regs) struct regcache *regs)

View File

@ -425,7 +425,7 @@ typedef buf_displaced_step_closure s390_displaced_step_closure;
/* Implementation of gdbarch_displaced_step_copy_insn. */ /* Implementation of gdbarch_displaced_step_copy_insn. */
static std::unique_ptr<displaced_step_closure> static displaced_step_closure_up
s390_displaced_step_copy_insn (struct gdbarch *gdbarch, s390_displaced_step_copy_insn (struct gdbarch *gdbarch,
CORE_ADDR from, CORE_ADDR to, CORE_ADDR from, CORE_ADDR to,
struct regcache *regs) struct regcache *regs)