[all-commits] [llvm/llvm-project] d510b5: [lldb][AArch64] Annotate synchronous tag faults

David Spickett via All-commits all-commits at lists.llvm.org
Thu Jul 29 02:26:52 PDT 2021


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

  Changed paths:
    M lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp
    M lldb/source/Plugins/Process/Linux/NativeThreadLinux.h
    A lldb/test/API/linux/aarch64/mte_tag_faults/Makefile
    A lldb/test/API/linux/aarch64/mte_tag_faults/TestAArch64LinuxMTEMemoryTagFaults.py
    A lldb/test/API/linux/aarch64/mte_tag_faults/main.c

  Log Message:
  -----------
  [lldb][AArch64] Annotate synchronous tag faults

In the latest Linux kernels synchronous tag faults
include the tag bits in their address.
This change adds logical and allocation tags to the
description of synchronous tag faults.
(asynchronous faults have no address)

Process 1626 stopped
* thread #1, name = 'a.out', stop reason = signal SIGSEGV: sync tag check fault (fault address: 0x900fffff7ff9010 logical tag: 0x9 allocation tag: 0x0)

This extends the existing description and will
show as much as it can on the rare occasion something
fails.

This change supports AArch64 MTE only but other
architectures could be added by extending the
switch at the start of AnnotateSyncTagCheckFault.
The rest of the function is generic code.

Tests have been added for synchronous and asynchronous
MTE faults.

Reviewed By: omjavaid

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




More information about the All-commits mailing list