llvm-project/lldb/source/Plugins/Process/Utility
Muhammad Omair Javaid 5e6aabd48e Support AArch64/Linux watchpoint on tagged addresses
AArch64 architecture support virtual addresses with some of the top bits ignored.
These ignored bits can host memory tags or bit masks that can serve to check for
authentication of address integrity. We need to clear away the top ignored bits
from watchpoint address to reliably hit and set watchpoints on addresses
containing tags or masks in their top bits.

This patch adds support to watch tagged addresses on AArch64/Linux.

Reviewed By: DavidSpickett

Differential Revision: https://reviews.llvm.org/D101361
2021-07-12 07:39:26 +05:00
..
ARMDefines.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
ARMUtils.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
AuxVector.cpp [LLDB] Define AUXV_AT_HWCAP2 in AuxVector.h 2021-01-25 20:48:16 +05:00
AuxVector.h [LLDB] Define AUXV_AT_HWCAP2 in AuxVector.h 2021-01-25 20:48:16 +05:00
CMakeLists.txt [lldb][AArch64] Add class for managing memory tags 2021-06-24 15:10:01 +01:00
DynamicRegisterInfo.cpp Use remote regnums in expedited list, value regs and invalidate regs 2021-02-08 14:09:15 +05:00
DynamicRegisterInfo.h Use remote regnums in expedited list, value regs and invalidate regs 2021-02-08 14:09:15 +05:00
FreeBSDSignals.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
FreeBSDSignals.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
GDBRemoteSignals.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
GDBRemoteSignals.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
HistoryThread.cpp [lldb] Use std::make_unique<> (NFC) 2020-06-24 17:48:40 -07:00
HistoryThread.h [lldb/MemoryHistoryAsan] Fix address resolution for recorded backtraces 2020-03-18 13:18:02 -07:00
HistoryUnwind.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
HistoryUnwind.h [lldb/MemoryHistoryAsan] Fix address resolution for recorded backtraces 2020-03-18 13:18:02 -07:00
InferiorCallPOSIX.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
InferiorCallPOSIX.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
InstructionUtils.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
LinuxPTraceDefines_arm64sve.h [lldb] Fix typos. NFC. 2021-05-31 06:48:57 +07:00
LinuxProcMaps.cpp [lldb][AArch64/Linux] Show memory tagged memory regions 2020-11-20 11:21:59 +00:00
LinuxProcMaps.h [lldb][AArch64/Linux] Show memory tagged memory regions 2020-11-20 11:21:59 +00:00
LinuxSignals.cpp [lldb] Format remaining signal table (NFC) 2020-10-08 21:51:41 -07:00
LinuxSignals.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
MemoryTagManagerAArch64MTE.cpp [lldb][AArch64] Fix unpack tags test case 2021-06-24 15:53:23 +01:00
MemoryTagManagerAArch64MTE.h [lldb][AArch64] Add class for managing memory tags 2021-06-24 15:10:01 +01:00
MipsLinuxSignals.cpp [lldb] Format remaining signal table (NFC) 2020-10-08 21:51:41 -07:00
MipsLinuxSignals.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
NativeProcessSoftwareSingleStep.cpp [lldb] [Process/FreeBSDRemote] Introduce mips64 support 2021-02-08 18:27:26 +01:00
NativeProcessSoftwareSingleStep.h [lldb] [Process/FreeBSDRemote] Introduce mips64 support 2021-02-08 18:27:26 +01:00
NativeRegisterContextDBReg_arm64.cpp Support AArch64/Linux watchpoint on tagged addresses 2021-07-12 07:39:26 +05:00
NativeRegisterContextDBReg_arm64.h Support AArch64/Linux watchpoint on tagged addresses 2021-07-12 07:39:26 +05:00
NativeRegisterContextDBReg_x86.cpp [lldb] Rename NativeRegisterContext{Watchpoint => DBReg}_x86 2021-03-01 16:23:36 +01:00
NativeRegisterContextDBReg_x86.h [lldb] Fix compilation with gcc-6.5 2021-04-01 08:44:50 +02:00
NativeRegisterContextRegisterInfo.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
NativeRegisterContextRegisterInfo.h Combine multiple defs of arm64 register sets 2020-07-07 20:25:02 +05:00
NetBSDSignals.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
NetBSDSignals.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextDarwinConstants.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextDarwin_arm.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterContextDarwin_arm.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextDarwin_arm64.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterContextDarwin_arm64.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextDarwin_i386.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterContextDarwin_i386.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextDarwin_x86_64.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterContextDarwin_x86_64.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextDummy.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
RegisterContextDummy.h [lldb] NFC remove DISALLOW_COPY_AND_ASSIGN 2020-06-02 13:23:53 -04:00
RegisterContextFreeBSD_i386.cpp [lldb] [Process/Utility] Fix DR offsets for FreeBSD 2020-11-12 14:09:03 +01:00
RegisterContextFreeBSD_i386.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextFreeBSD_mips64.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
RegisterContextFreeBSD_mips64.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextFreeBSD_powerpc.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterContextFreeBSD_powerpc.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextFreeBSD_x86_64.cpp [lldb] [Process/Utility] Fix DR offsets for FreeBSD 2020-11-12 14:09:03 +01:00
RegisterContextFreeBSD_x86_64.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextHistory.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
RegisterContextHistory.h [lldb] NFC remove DISALLOW_COPY_AND_ASSIGN 2020-06-02 13:23:53 -04:00
RegisterContextLinux_i386.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
RegisterContextLinux_i386.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextLinux_s390x.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
RegisterContextLinux_s390x.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextLinux_x86_64.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
RegisterContextLinux_x86_64.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextMach_arm.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterContextMach_arm.h [lldb][NFC] Add 'override' where missing in source/ and tools/ 2020-07-15 11:34:47 -07:00
RegisterContextMach_i386.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterContextMach_i386.h [lldb][NFC] Add 'override' where missing in source/ and tools/ 2020-07-15 11:34:47 -07:00
RegisterContextMach_x86_64.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterContextMach_x86_64.h [lldb][NFC] Add 'override' where missing in source/ and tools/ 2020-07-15 11:34:47 -07:00
RegisterContextMemory.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterContextMemory.h [lldb] NFC remove DISALLOW_COPY_AND_ASSIGN 2020-06-02 13:23:53 -04:00
RegisterContextNetBSD_i386.cpp [lldb] Introduce i386 support in NetBSD Process plugin 2020-02-05 13:31:06 +01:00
RegisterContextNetBSD_i386.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextNetBSD_x86_64.cpp [lldb] Improve debugging 32-bit programs on NetBSD/amd64 2020-02-07 17:48:33 +01:00
RegisterContextNetBSD_x86_64.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextOpenBSD_i386.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
RegisterContextOpenBSD_i386.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextOpenBSD_x86_64.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
RegisterContextOpenBSD_x86_64.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextPOSIX_arm.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterContextPOSIX_arm.h [lldb] Remove bogus ProcessMonitor forward-decls 2020-10-14 16:43:45 +02:00
RegisterContextPOSIX_arm64.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterContextPOSIX_arm64.h Support AArch64 PAC elf-core register read 2021-05-03 16:04:47 +05:00
RegisterContextPOSIX_mips64.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterContextPOSIX_mips64.h [lldb] Remove bogus ProcessMonitor forward-decls 2020-10-14 16:43:45 +02:00
RegisterContextPOSIX_powerpc.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterContextPOSIX_powerpc.h [lldb] Remove bogus ProcessMonitor forward-decls 2020-10-14 16:43:45 +02:00
RegisterContextPOSIX_ppc64le.cpp [lldb][NFC] Use C++ versions of the deprecated C standard library headers 2021-05-26 12:46:12 +02:00
RegisterContextPOSIX_ppc64le.h Remove code duplication from RegisterContextPOSIX_* 2020-06-18 01:02:46 +05:00
RegisterContextPOSIX_s390x.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterContextPOSIX_s390x.h [lldb] Remove bogus ProcessMonitor forward-decls 2020-10-14 16:43:45 +02:00
RegisterContextPOSIX_x86.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterContextPOSIX_x86.h [lldb] [Process/Utility] Declare register overlaps between ST and MM 2020-11-23 09:23:14 +01:00
RegisterContextThreadMemory.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterContextThreadMemory.h [lldb] NFC remove DISALLOW_COPY_AND_ASSIGN 2020-06-02 13:23:53 -04:00
RegisterContextWindows_i386.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
RegisterContextWindows_i386.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextWindows_x86_64.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
RegisterContextWindows_x86_64.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContext_mips.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContext_powerpc.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContext_s390x.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContext_x86.cpp [lldb] Reland "Use translated full ftag values" 2020-11-21 17:11:38 +01:00
RegisterContext_x86.h [lldb] Reland "Use translated full ftag values" 2020-11-21 17:11:38 +01:00
RegisterInfoAndSetInterface.h Combine multiple defs of arm64 register sets 2020-07-07 20:25:02 +05:00
RegisterInfoInterface.h [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
RegisterInfoPOSIX_arm.cpp [lldb][NFC] Use C++ versions of the deprecated C standard library headers 2021-05-26 12:46:12 +02:00
RegisterInfoPOSIX_arm.h Move NativeRegisterContextLinux/RegisterContextPOSIX*_arm to RegisterInfoAndSetInterface 2020-09-07 09:06:46 +05:00
RegisterInfoPOSIX_arm64.cpp [lldb][NFC] Use C++ versions of the deprecated C standard library headers 2021-05-26 12:46:12 +02:00
RegisterInfoPOSIX_arm64.h Support AArch64 PAC elf-core register read 2021-05-03 16:04:47 +05:00
RegisterInfoPOSIX_ppc64le.cpp [lldb][NFC] Use C++ versions of the deprecated C standard library headers 2021-05-26 12:46:12 +02:00
RegisterInfoPOSIX_ppc64le.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterInfos_arm.h [lldb][NFC] Use C++ versions of the deprecated C standard library headers 2021-05-26 12:46:12 +02:00
RegisterInfos_arm64.h [lldb][NFC] Use C++ versions of the deprecated C standard library headers 2021-05-26 12:46:12 +02:00
RegisterInfos_arm64_sve.h [LLDB] Remove leftovers and typos from RegisterInfos_arm64_sve.h 2021-01-25 20:48:15 +05:00
RegisterInfos_i386.h [lldb] [Process/Utility] Declare register overlaps between ST and MM 2020-11-23 09:23:14 +01:00
RegisterInfos_mips.h [lldb][NFC] Use C++ versions of the deprecated C standard library headers 2021-05-26 12:46:12 +02:00
RegisterInfos_mips64.h [lldb][NFC] Use C++ versions of the deprecated C standard library headers 2021-05-26 12:46:12 +02:00
RegisterInfos_powerpc.h [lldb][NFC] Use C++ versions of the deprecated C standard library headers 2021-05-26 12:46:12 +02:00
RegisterInfos_ppc64.h [lldb][NFC] Use C++ versions of the deprecated C standard library headers 2021-05-26 12:46:12 +02:00
RegisterInfos_ppc64le.h [lldb][NFC] Use C++ versions of the deprecated C standard library headers 2021-05-26 12:46:12 +02:00
RegisterInfos_s390x.h [lldb][NFC] Use C++ versions of the deprecated C standard library headers 2021-05-26 12:46:12 +02:00
RegisterInfos_x86_64.h [lldb] [Process/Utility] Declare register overlaps between ST and MM 2020-11-23 09:23:14 +01:00
StopInfoMachException.cpp Convert functions that were returning BreakpointOption * to BreakpointOption &. 2021-06-15 14:34:02 -07:00
StopInfoMachException.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
ThreadMemory.cpp [lldb] Return Unwinder& from Thread::GetUnwinder 2020-03-09 14:13:22 +01:00
ThreadMemory.h [lldb] NFC remove DISALLOW_COPY_AND_ASSIGN 2020-06-02 13:23:53 -04:00
lldb-arm-register-enums.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
lldb-arm64-register-enums.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
lldb-mips-freebsd-register-enums.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
lldb-ppc64-register-enums.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
lldb-ppc64le-register-enums.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
lldb-s390x-register-enums.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
lldb-x86-register-enums.h [lldb] Add explicit 64-bit fip/fdp registers on x86_64 2020-11-19 13:23:12 +01:00