[all-commits] [llvm/llvm-project] e6ec76: [LLDB] Apply FixCodeAddress to all forms of addres...

David Spickett via All-commits all-commits at lists.llvm.org
Mon Feb 13 02:16:07 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e6ec76c647aaa335de48b8534d3a044346d9656f
      https://github.com/llvm/llvm-project/commit/e6ec76c647aaa335de48b8534d3a044346d9656f
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2023-02-13 (Mon, 13 Feb 2023)

  Changed paths:
    M lldb/include/lldb/Interpreter/OptionArgParser.h
    M lldb/source/Commands/CommandObjectMemory.cpp
    M lldb/source/Commands/CommandObjectMemoryTag.cpp
    M lldb/source/Interpreter/OptionArgParser.cpp
    A lldb/test/API/linux/aarch64/non_address_bit_code_break/Makefile
    A lldb/test/API/linux/aarch64/non_address_bit_code_break/TestAArch64LinuxNonAddressBitCodeBreak.py
    A lldb/test/API/linux/aarch64/non_address_bit_code_break/main.c

  Log Message:
  -----------
  [LLDB] Apply FixCodeAddress to all forms of address arguments

This is a follow up to https://reviews.llvm.org/D141629
and applies the change it made to all paths through ToAddress
(now DoToAddress).

I have included the test from my previous attempt
https://reviews.llvm.org/D136938.

The initial change only applied fixing to addresses that
would parse as integers, so my test case failed. Since
ToAddress has multiple exit points, I've wrapped it into
a new method DoToAddress.

Now you can call ToAddress, it will call DoToAddress and
no matter what path you take, the address will be fixed.

For the memory tagging commands we actually want the full
address (to work out mismatches). So I added ToRawAddress
for that.

I have tested this on a QEMU AArch64 Linux system with
Memory Tagging, Pointer Authentication and Top Byte Ignore
enabled. By running the new test and all other tests in
API/linux/aarch64.

Some commands have had calls to the ABI plugin removed
as ToAddress now does this for them.

The "memory region" command still needs to use the ABI plugin
to detect the end of memory when there are non-address bits.

Reviewed By: jasonmolenda

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




More information about the All-commits mailing list