llvm-project/lldb/source/Plugins/Process/Utility
Muhammad Omair Javaid 78cb4562fa Make offset field optional in RegisterInfo packet for Arm64
This patch carries forward our aim to remove offset field from qRegisterInfo
packets and XML register description. I have created a new function which
returns if offset fields are dynamic meaning client can calculate offset on
its own based on register number sequence and register size. For now this
function only returns true for NativeRegisterContextLinux_arm64 but we can
test this for other architectures and make it standard later.

As a consequence we do not send offset field from lldb-server (arm64 for now)
while other stubs dont have an offset field so it wont effect them for now.
On the client side we have replaced previous offset calculation algorithm
with a new scheme, where we sort all primary registers in increasing
order of remote regnum and then calculate offset incrementally.

This committ also includes a test to verify all of above functionality
on Arm64.

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D91241
2020-12-02 03:19:43 +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][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
AuxVector.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
CMakeLists.txt [lldb] Reland "Use translated full ftag values" 2020-11-21 17:11:38 +01:00
DynamicRegisterInfo.cpp Make offset field optional in RegisterInfo packet for Arm64 2020-12-02 03:19:43 +05:00
DynamicRegisterInfo.h [lldb] Remove all the RegisterInfo name constification code 2020-10-13 17:10:29 +02: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/MemoryHistoryAsan] Fix address resolution for recorded backtraces 2020-03-18 13:18:02 -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 Convert SVE macros into c++ constants and inlines 2020-08-19 12:28:16 +05: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
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
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
NativeRegisterContextWatchpoint_x86.cpp [lldb] Split out NetBSD/x86 watchpoint impl for unification 2020-10-23 12:20:15 +02:00
NativeRegisterContextWatchpoint_x86.h [lldb] [Process/FreeBSDRemote] Access debug registers via offsets 2020-11-16 13:03:01 +01: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][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01: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][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01: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][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01: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][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01: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][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01: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_mips.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
RegisterContextLinux_mips.h [lldb] Update header guards to be consistent and compliant with LLVM (NFC) 2020-02-17 23:15:40 -08:00
RegisterContextLinux_mips64.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01:00
RegisterContextLinux_mips64.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][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01: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][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01: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][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01: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][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01: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 Move NativeRegisterContextLinux/RegisterContextPOSIX*_arm to RegisterInfoAndSetInterface 2020-09-07 09:06:46 +05:00
RegisterContextPOSIX_arm.h [lldb] Remove bogus ProcessMonitor forward-decls 2020-10-14 16:43:45 +02:00
RegisterContextPOSIX_arm64.cpp Revert "Revert "AArch64 SVE register infos and core file support"" 2020-07-21 14:31:47 +05:00
RegisterContextPOSIX_arm64.h [lldb] Remove bogus ProcessMonitor forward-decls 2020-10-14 16:43:45 +02:00
RegisterContextPOSIX_mips64.cpp Remove code duplication from RegisterContextPOSIX_* 2020-06-18 01:02:46 +05:00
RegisterContextPOSIX_mips64.h [lldb] Remove bogus ProcessMonitor forward-decls 2020-10-14 16:43:45 +02:00
RegisterContextPOSIX_powerpc.cpp Remove code duplication from RegisterContextPOSIX_* 2020-06-18 01:02:46 +05:00
RegisterContextPOSIX_powerpc.h [lldb] Remove bogus ProcessMonitor forward-decls 2020-10-14 16:43:45 +02:00
RegisterContextPOSIX_ppc64le.cpp Remove code duplication from RegisterContextPOSIX_* 2020-06-18 01:02:46 +05:00
RegisterContextPOSIX_ppc64le.h Remove code duplication from RegisterContextPOSIX_* 2020-06-18 01:02:46 +05:00
RegisterContextPOSIX_s390x.cpp Remove code duplication from RegisterContextPOSIX_* 2020-06-18 01:02:46 +05:00
RegisterContextPOSIX_s390x.h [lldb] Remove bogus ProcessMonitor forward-decls 2020-10-14 16:43:45 +02:00
RegisterContextPOSIX_x86.cpp [lldb] [Process/Utility] Declare register overlaps between ST and MM 2020-11-23 09:23:14 +01: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][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01: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] Remove redundant access specifiers (NFC) 2020-06-15 21:34:13 -07:00
RegisterInfoPOSIX_arm.cpp Move NativeRegisterContextLinux/RegisterContextPOSIX*_arm to RegisterInfoAndSetInterface 2020-09-07 09:06:46 +05:00
RegisterInfoPOSIX_arm.h Move NativeRegisterContextLinux/RegisterContextPOSIX*_arm to RegisterInfoAndSetInterface 2020-09-07 09:06:46 +05:00
RegisterInfoPOSIX_arm64.cpp Send SVE vg register in custom expedited registerset 2020-11-30 17:34:19 +05:00
RegisterInfoPOSIX_arm64.h RegisterInfoPOSIX_arm64 remove unused bytes from g/G packet 2020-12-02 03:19:39 +05:00
RegisterInfoPOSIX_ppc64le.cpp [lldb][NFC] Fix all formatting errors in .cpp file headers 2020-01-24 08:52:55 +01: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 Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RegisterInfos_arm64.h Minor fixups to LLDB AArch64 register infos macros for SVE register infos 2020-07-08 01:07:17 +05:00
RegisterInfos_arm64_sve.h [LLDB] Update SVE Z reg info to remove invalidate regs 2020-11-17 17:14:44 +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 Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RegisterInfos_mips64.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RegisterInfos_powerpc.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RegisterInfos_ppc64.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RegisterInfos_ppc64le.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RegisterInfos_s390x.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00: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 Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01: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-mips-linux-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