[all-commits] [llvm/llvm-project] e8f998: AArch64 Linux and elf-core PAC stack unwinder support

Muhammad Omair Javaid via All-commits all-commits at lists.llvm.org
Tue Jun 15 14:10:15 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e8f998c0c5edda3d6bad9b70e60975296df3d9fb
      https://github.com/llvm/llvm-project/commit/e8f998c0c5edda3d6bad9b70e60975296df3d9fb
  Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
  Date:   2021-06-16 (Wed, 16 Jun 2021)

  Changed paths:
    M lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp
    M lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.h
    M lldb/test/API/functionalities/postmortem/elf-core/TestLinuxCore.py
    A lldb/test/API/functionalities/postmortem/elf-core/linux-aarch64-pac.out
    A lldb/test/API/functionalities/unwind/aarch64_unwind_pac/Makefile
    A lldb/test/API/functionalities/unwind/aarch64_unwind_pac/TestAArch64UnwindPAC.py
    A lldb/test/API/functionalities/unwind/aarch64_unwind_pac/main.c

  Log Message:
  -----------
  AArch64 Linux and elf-core PAC stack unwinder support

This patch builds on D100521 and other related patches to add support
for unwinding stack on AArch64 systems with pointer authentication
feature enabled.

We override FixCodeAddress and FixDataAddress function in ABISysV_arm64
class. We now try to calculate and set code and data masks after reading
data_mask and code_mask registers exposed by AArch64 targets running Linux.

This patch utilizes core file linux-aarch64-pac.core for testing that
LLDB can successfully unwind stack frames in the presence of signed
return address after masking off ignored bits.

This patch also includes a AArch64 Linux native test case to demonstrate
successful back trace calculation in presence of pointer authentication
feature.

Differential Revision: https://reviews.llvm.org/D99944




More information about the All-commits mailing list