[aarch64] Fix ARMv8.1/v8.2 for hw watchpoint and breakpoint
(Andrew Pinski, RH BZ 1363635).
This commit is contained in:
parent
fb74e3a749
commit
3f32311b4a
74
gdb-rhbz1363635-aarch64-armv8182.patch
Normal file
74
gdb-rhbz1363635-aarch64-armv8182.patch
Normal file
@ -0,0 +1,74 @@
|
||||
commit 49ecef2a7da2ee9df4ae675f99b70518fbf1bb23
|
||||
Author: Andrew Pinski <apinski@cavium.com>
|
||||
Date: Sat Jul 23 09:56:44 2016 -0700
|
||||
|
||||
Fix ARMv8.1/v8.2 for hw watchpoint and breakpoint
|
||||
|
||||
The problem here is ARMv8.1 (and ARMv8.2) define a
|
||||
different debug version than ARMv8 (7 and 8 respectively).
|
||||
This fixes hw watchpoints and breakpoints by checking
|
||||
for those debug versions too.
|
||||
|
||||
Committed as obvious after a test on aarch64-linux-gnu
|
||||
(on a ThunderX machine which has ARMv8.1 support enabled).
|
||||
|
||||
ChangeLog:
|
||||
* nat/aarch64-linux-hw-point.c
|
||||
(aarch64_linux_get_debug_reg_capacity): Handle
|
||||
ARMv8.1 and ARMv8.2 debug versions.
|
||||
* nat/aarch64-linux-hw-point.h
|
||||
(AARCH64_DEBUG_ARCH_V8_1): New define.
|
||||
(AARCH64_DEBUG_ARCH_V8_2): New define.
|
||||
|
||||
Signed-off-by: Andrew Pinski <apinski@cavium.com>
|
||||
|
||||
### a/gdb/ChangeLog
|
||||
### b/gdb/ChangeLog
|
||||
## -1,3 +1,12 @@
|
||||
+2016-07-23 Andrew Pinski <apinski@cavium.com>
|
||||
+
|
||||
+ * nat/aarch64-linux-hw-point.c
|
||||
+ (aarch64_linux_get_debug_reg_capacity): Handle
|
||||
+ ARMv8.1 and ARMv8.2 debug versions.
|
||||
+ * nat/aarch64-linux-hw-point.h
|
||||
+ (AARCH64_DEBUG_ARCH_V8_1): New define.
|
||||
+ (AARCH64_DEBUG_ARCH_V8_2): New define.
|
||||
+
|
||||
2016-06-30 Руслан Ижбулатов <lrn1986@gmail.com>
|
||||
|
||||
PR gdb/14529
|
||||
--- a/gdb/nat/aarch64-linux-hw-point.c
|
||||
+++ b/gdb/nat/aarch64-linux-hw-point.c
|
||||
@@ -630,7 +630,9 @@ aarch64_linux_get_debug_reg_capacity (int tid)
|
||||
|
||||
/* Get hardware watchpoint register info. */
|
||||
if (ptrace (PTRACE_GETREGSET, tid, NT_ARM_HW_WATCH, &iov) == 0
|
||||
- && AARCH64_DEBUG_ARCH (dreg_state.dbg_info) == AARCH64_DEBUG_ARCH_V8)
|
||||
+ && (AARCH64_DEBUG_ARCH (dreg_state.dbg_info) == AARCH64_DEBUG_ARCH_V8
|
||||
+ || AARCH64_DEBUG_ARCH (dreg_state.dbg_info) == AARCH64_DEBUG_ARCH_V8_1
|
||||
+ || AARCH64_DEBUG_ARCH (dreg_state.dbg_info) == AARCH64_DEBUG_ARCH_V8_2))
|
||||
{
|
||||
aarch64_num_wp_regs = AARCH64_DEBUG_NUM_SLOTS (dreg_state.dbg_info);
|
||||
if (aarch64_num_wp_regs > AARCH64_HWP_MAX_NUM)
|
||||
@@ -650,7 +652,9 @@ aarch64_linux_get_debug_reg_capacity (int tid)
|
||||
|
||||
/* Get hardware breakpoint register info. */
|
||||
if (ptrace (PTRACE_GETREGSET, tid, NT_ARM_HW_BREAK, &iov) == 0
|
||||
- && AARCH64_DEBUG_ARCH (dreg_state.dbg_info) == AARCH64_DEBUG_ARCH_V8)
|
||||
+ && (AARCH64_DEBUG_ARCH (dreg_state.dbg_info) == AARCH64_DEBUG_ARCH_V8
|
||||
+ || AARCH64_DEBUG_ARCH (dreg_state.dbg_info) == AARCH64_DEBUG_ARCH_V8_1
|
||||
+ || AARCH64_DEBUG_ARCH (dreg_state.dbg_info) == AARCH64_DEBUG_ARCH_V8_2))
|
||||
{
|
||||
aarch64_num_bp_regs = AARCH64_DEBUG_NUM_SLOTS (dreg_state.dbg_info);
|
||||
if (aarch64_num_bp_regs > AARCH64_HBP_MAX_NUM)
|
||||
--- a/gdb/nat/aarch64-linux-hw-point.h
|
||||
+++ b/gdb/nat/aarch64-linux-hw-point.h
|
||||
@@ -68,6 +68,8 @@
|
||||
|
||||
/* Macro for the expected version of the ARMv8-A debug architecture. */
|
||||
#define AARCH64_DEBUG_ARCH_V8 0x6
|
||||
+#define AARCH64_DEBUG_ARCH_V8_1 0x7
|
||||
+#define AARCH64_DEBUG_ARCH_V8_2 0x8
|
||||
|
||||
/* ptrace expects control registers to be formatted as follows:
|
||||
|
11
gdb.spec
11
gdb.spec
@ -27,7 +27,7 @@ Version: 7.11.1
|
||||
|
||||
# The release always contains a leading reserved number, start it at 1.
|
||||
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
|
||||
Release: 76%{?dist}
|
||||
Release: 77%{?dist}
|
||||
|
||||
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain and GFDL
|
||||
Group: Development/Debuggers
|
||||
@ -574,6 +574,10 @@ Patch1123: gdb-rhbz1325795-framefilters-test.patch
|
||||
Patch1128: gdb-bare-DW_TAG_lexical_block-1of2.patch
|
||||
Patch1129: gdb-bare-DW_TAG_lexical_block-2of2.patch
|
||||
|
||||
# [aarch64] Fix ARMv8.1/v8.2 for hw watchpoint and breakpoint
|
||||
# (Andrew Pinski, RH BZ 1363635).
|
||||
Patch1141: gdb-rhbz1363635-aarch64-armv8182.patch
|
||||
|
||||
%if 0%{!?rhel:1} || 0%{?rhel} > 6
|
||||
# RL_STATE_FEDORA_GDB would not be found for:
|
||||
# Patch642: gdb-readline62-ask-more-rh.patch
|
||||
@ -888,6 +892,7 @@ find -name "*.info*"|xargs rm -f
|
||||
%patch1123 -p1
|
||||
%patch1128 -p1
|
||||
%patch1129 -p1
|
||||
%patch1141 -p1
|
||||
|
||||
%patch1075 -p1
|
||||
%if 0%{?rhel:1} && 0%{?rhel} <= 7
|
||||
@ -1407,6 +1412,10 @@ then
|
||||
fi
|
||||
|
||||
%changelog
|
||||
* Wed Aug 3 2016 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.11.1-77.fc24
|
||||
- [aarch64] Fix ARMv8.1/v8.2 for hw watchpoint and breakpoint
|
||||
(Andrew Pinski, RH BZ 1363635).
|
||||
|
||||
* Mon Jun 27 2016 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.11.1-76.fc24
|
||||
- Test 'info type-printers' Python error (RH BZ 1350436).
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user