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>
* 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. */
std::unique_ptr<displaced_step_closure>
displaced_step_closure_up
aarch64_displaced_step_copy_insn (struct gdbarch *gdbarch,
CORE_ADDR from, CORE_ADDR to,
struct regcache *regs)

View File

@ -23,6 +23,7 @@
#define AARCH64_TDEP_H
#include "arch/aarch64.h"
#include "infrun.h"
/* Forward declarations. */
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,
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,
CORE_ADDR from, CORE_ADDR to,
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,
CORE_ADDR from, CORE_ADDR to,
struct regcache *regs)

View File

@ -26,6 +26,7 @@ struct frame_info;
struct regcache;
#include "i386-tdep.h"
#include "infrun.h"
/* Register numbers of various important registers. */
@ -87,7 +88,7 @@ enum amd64_regnum
#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 regcache *regs);
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
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,
CORE_ADDR from, CORE_ADDR to,
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;
}
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)
{
gdb_assert (gdbarch != NULL);

View File

@ -39,6 +39,7 @@
#include "frame.h"
#include "dis-asm.h"
#include "gdb_obstack.h"
#include "infrun.h"
struct floatformat;
struct ui_file;
@ -55,7 +56,6 @@ struct obstack;
struct bp_target_info;
struct target_desc;
struct symbol;
struct displaced_step_closure;
struct syscall;
struct agent_expr;
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);
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);
extern std::unique_ptr<displaced_step_closure> gdbarch_displaced_step_copy_insn (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 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);
/* 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
# core falls back to stepping past the instruction in-line instead in
# 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
# the displaced instruction identified by CLOSURE. If false,
@ -1312,6 +1312,7 @@ cat <<EOF
#include "frame.h"
#include "dis-asm.h"
#include "gdb_obstack.h"
#include "infrun.h"
struct floatformat;
struct ui_file;
@ -1328,7 +1329,6 @@ struct obstack;
struct bp_target_info;
struct target_desc;
struct symbol;
struct displaced_step_closure;
struct syscall;
struct agent_expr;
struct axs_value;

View File

@ -36,6 +36,7 @@
#include "symtab.h"
#include "arch-utils.h"
#include "xml-syscall.h"
#include "infrun.h"
#include "i387-tdep.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
'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,
CORE_ADDR from, CORE_ADDR to,
struct regcache *regs)
{
std::unique_ptr<displaced_step_closure> closure_
displaced_step_closure_up closure_
= i386_displaced_step_copy_insn (gdbarch, from, to, regs);
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. */
std::unique_ptr<displaced_step_closure>
displaced_step_closure_up
i386_displaced_step_copy_insn (struct gdbarch *gdbarch,
CORE_ADDR from, CORE_ADDR to,
struct regcache *regs)

View File

@ -428,7 +428,7 @@ extern void
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 regcache *regs);
extern void i386_displaced_step_fixup (struct gdbarch *gdbarch,

View File

@ -265,6 +265,8 @@ struct displaced_step_closure
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. */
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
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
made. */

View File

@ -855,7 +855,7 @@ typedef buf_displaced_step_closure ppc_displaced_step_closure;
/* 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,
CORE_ADDR from, CORE_ADDR to,
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. */
static std::unique_ptr<displaced_step_closure>
static displaced_step_closure_up
s390_displaced_step_copy_insn (struct gdbarch *gdbarch,
CORE_ADDR from, CORE_ADDR to,
struct regcache *regs)