[all-commits] [llvm/llvm-project] ea4cf9: [lldb][FreeBSD][AArch64] Enable register field det...

David Spickett via All-commits all-commits at lists.llvm.org
Mon Jul 1 08:19:18 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ea4cf923edf441897c31edd59a0d7bc8c6f380ff
      https://github.com/llvm/llvm-project/commit/ea4cf923edf441897c31edd59a0d7bc8c6f380ff
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-07-01 (Mon, 01 Jul 2024)

  Changed paths:
    M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD.h
    M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm.cpp
    M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp
    M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.h
    M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_mips64.cpp
    M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_powerpc.cpp
    M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_x86_64.cpp
    M lldb/source/Plugins/Process/FreeBSD/NativeThreadFreeBSD.cpp
    M lldb/source/Plugins/Process/FreeBSD/NativeThreadFreeBSD.h
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
    M lldb/source/Plugins/Process/Utility/CMakeLists.txt
    A lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.cpp
    A lldb/source/Plugins/Process/Utility/RegisterFlagsDetector_arm64.h
    R lldb/source/Plugins/Process/Utility/RegisterFlagsLinux_arm64.cpp
    R lldb/source/Plugins/Process/Utility/RegisterFlagsLinux_arm64.h
    M lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp
    M lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.h
    M lldb/test/API/commands/register/register/register_command/TestRegisters.py
    A lldb/test/Shell/Register/Core/aarch64-freebsd-register-fields.test
    M llvm/docs/ReleaseNotes.rst
    M llvm/utils/gn/secondary/lldb/source/Plugins/Process/Utility/BUILD.gn

  Log Message:
  -----------
  [lldb][FreeBSD][AArch64] Enable register field detection (#85058)

This extends the existing register fields support from AArch64 Linux
to AArch64 FreeBSD. So you will now see output like this:
```
(lldb) register read cpsr
    cpsr = 0x60000200
         = (N = 0, Z = 1, C = 1, V = 0, DIT = 0, SS = 0, IL = 0, SSBS = 0, D = 1, A = 0, I = 0, F = 0, nRW = 0, EL = 0, SP = 0) 
```

Linux and FreeBSD both have HWCAP/HWCAP2 so the detection mechanism
is the same and I've renamed the detector class to reflect that.

I have confirmed that FreeBSD's treatment of CPSR (spsr as the kernel
calls it) is similair enough that we can use the same field information.

(see `sys/arm64/include/armreg.h` and `PSR_SETTABLE_64`)

For testing I've enabled the same live process test as Linux
and added a shell test using an existing FreeBSD core file.

Note that the latter does not need XML support because when reading
a core file we are not sending the information via target.xml,
it's just internal to LLDB.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list