aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog23
-rw-r--r--gdb/aarch64-tdep.c2
-rw-r--r--gdb/aarch64-tdep.h3
-rw-r--r--gdb/amd64-tdep.c2
-rw-r--r--gdb/amd64-tdep.h3
-rw-r--r--gdb/arm-linux-tdep.c2
-rw-r--r--gdb/gdbarch.c2
-rw-r--r--gdb/gdbarch.h6
-rwxr-xr-xgdb/gdbarch.sh4
-rw-r--r--gdb/i386-linux-tdep.c5
-rw-r--r--gdb/i386-tdep.c2
-rw-r--r--gdb/i386-tdep.h2
-rw-r--r--gdb/infrun.h4
-rw-r--r--gdb/rs6000-tdep.c2
-rw-r--r--gdb/s390-tdep.c2
15 files changed, 46 insertions, 18 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index fd9b6a8..dafd90e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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.
diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c
index 1bf6bfd..bfacfb0 100644
--- a/gdb/aarch64-tdep.c
+++ b/gdb/aarch64-tdep.c
@@ -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)
diff --git a/gdb/aarch64-tdep.h b/gdb/aarch64-tdep.h
index fc39796..f6ebabe 100644
--- a/gdb/aarch64-tdep.h
+++ b/gdb/aarch64-tdep.h
@@ -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);
diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
index 35ddfba..9264fe4 100644
--- a/gdb/amd64-tdep.c
+++ b/gdb/amd64-tdep.c
@@ -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)
diff --git a/gdb/amd64-tdep.h b/gdb/amd64-tdep.h
index 33ef0c3..44c1250 100644
--- a/gdb/amd64-tdep.h
+++ b/gdb/amd64-tdep.h
@@ -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,
diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c
index b3ae04f..ccb556b 100644
--- a/gdb/arm-linux-tdep.c
+++ b/gdb/arm-linux-tdep.c
@@ -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)
diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c
index 4e59b375..e7d4ccc 100644
--- a/gdb/gdbarch.c
+++ b/gdb/gdbarch.c
@@ -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);
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h
index 8a3a071..0259fcd 100644
--- a/gdb/gdbarch.h
+++ b/gdb/gdbarch.h
@@ -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
diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh
index d4170c9..4a4b1bc 100755
--- a/gdb/gdbarch.sh
+++ b/gdb/gdbarch.sh
@@ -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;
diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c
index 7170687..c576b31 100644
--- a/gdb/i386-linux-tdep.c
+++ b/gdb/i386-linux-tdep.c
@@ -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)
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index 4b6f3d0..9771421 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -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)
diff --git a/gdb/i386-tdep.h b/gdb/i386-tdep.h
index 41faf51..fa29e31 100644
--- a/gdb/i386-tdep.h
+++ b/gdb/i386-tdep.h
@@ -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,
diff --git a/gdb/infrun.h b/gdb/infrun.h
index c6329c8..625c53a 100644
--- a/gdb/infrun.h
+++ b/gdb/infrun.h
@@ -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. */
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 010bbc9..513ce6a 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -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)
diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c
index 313d459..51d0203 100644
--- a/gdb/s390-tdep.c
+++ b/gdb/s390-tdep.c
@@ -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)