This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH v2 3/7] Implement breakpoint_from_kind for supported architectures in GDBServer.
- From: Antoine Tremblay <antoine dot tremblay at ericsson dot com>
- To: <gdb-patches at sourceware dot org>
- Cc: Antoine Tremblay <antoine dot tremblay at ericsson dot com>
- Date: Mon, 5 Oct 2015 12:44:11 -0400
- Subject: [PATCH v2 3/7] Implement breakpoint_from_kind for supported architectures in GDBServer.
- Authentication-results: sourceware.org; auth=none
- References: <1444063455-31558-1-git-send-email-antoine dot tremblay at ericsson dot com>
This patch implements the breakpoint_from_kind linux_target_ops for
architectures that support software breakpoints, namely : x86 and aarch64.
No regressions, tested on Ubuntu 14.04 x86.
With gdbserver-{native,extended}.
Compilation was also tested on aarch64.
---
gdb/gdbserver/linux-aarch64-low.c | 9 +++++++++
gdb/gdbserver/linux-x86-low.c | 9 +++++++++
2 files changed, 18 insertions(+)
diff --git a/gdb/gdbserver/linux-aarch64-low.c b/gdb/gdbserver/linux-aarch64-low.c
index 1e7a0ff..46b79a5 100644
--- a/gdb/gdbserver/linux-aarch64-low.c
+++ b/gdb/gdbserver/linux-aarch64-low.c
@@ -3238,6 +3238,14 @@ aarch64_supports_range_stepping (void)
return 1;
}
+/* Implementation of linux_target_ops method "breakpoint_from_kind". */
+
+static const unsigned char *
+aarch64_breakpoint_from_kind (int *kind)
+{
+ return (const unsigned char *) &aarch64_breakpoint;
+}
+
struct linux_target_ops the_low_target =
{
aarch64_arch_setup,
@@ -3270,6 +3278,7 @@ struct linux_target_ops the_low_target =
aarch64_emit_ops,
aarch64_get_min_fast_tracepoint_insn_len,
aarch64_supports_range_stepping,
+ aarch64_breakpoint_from_kind,
};
void
diff --git a/gdb/gdbserver/linux-x86-low.c b/gdb/gdbserver/linux-x86-low.c
index 41803c4..e64b498 100644
--- a/gdb/gdbserver/linux-x86-low.c
+++ b/gdb/gdbserver/linux-x86-low.c
@@ -3258,6 +3258,14 @@ x86_supports_range_stepping (void)
return 1;
}
+/* Implementation of linux_target_ops method "breakpoint_from_kind". */
+
+static const unsigned char *
+x86_breakpoint_from_kind (int *kind)
+{
+ return x86_breakpoint;
+}
+
/* This is initialized assuming an amd64 target.
x86_arch_setup will correct it for i386 or amd64 targets. */
@@ -3297,6 +3305,7 @@ struct linux_target_ops the_low_target =
x86_emit_ops,
x86_get_min_fast_tracepoint_insn_len,
x86_supports_range_stepping,
+ x86_breakpoint_from_kind,
};
void
--
1.9.1