llvm-project/lldb
David Spickett 6eded00e0c [lldb] Add "memory tag write" --end-addr option
The default mode of "memory tag write" is to calculate the
range from the start address and the number of tags given.
(just like "memory write" does)

(lldb) memory tag write mte_buf 1 2
(lldb) memory tag read mte_buf mte_buf+48
Logical tag: 0x0
Allocation tags:
[0xfffff7ff9000, 0xfffff7ff9010): 0x1
[0xfffff7ff9010, 0xfffff7ff9020): 0x2
[0xfffff7ff9020, 0xfffff7ff9030): 0x0

This new option allows you to set an end address and have
the tags repeat until that point.

(lldb) memory tag write mte_buf 1 2 --end-addr mte_buf+64
(lldb) memory tag read mte_buf mte_buf+80
Logical tag: 0x0
Allocation tags:
[0xfffff7ff9000, 0xfffff7ff9010): 0x1
[0xfffff7ff9010, 0xfffff7ff9020): 0x2
[0xfffff7ff9020, 0xfffff7ff9030): 0x1
[0xfffff7ff9030, 0xfffff7ff9040): 0x2
[0xfffff7ff9040, 0xfffff7ff9050): 0x0

This is implemented using the QMemTags packet previously
added. We skip validating the number of tags in lldb and send
them on to lldb-server, which repeats them as needed.

Apart from the number of tags, all the other client side checks
remain. Tag values, memory range must be tagged, etc.

Reviewed By: omjavaid

Differential Revision: https://reviews.llvm.org/D105183
2021-07-28 14:05:40 +01:00
..
bindings [lldb] Add AllocateMemory/DeallocateMemory to the SBProcess API 2021-07-16 00:45:22 +02:00
cmake [lldb] add LLDB_SKIP_DSYM option 2021-05-26 09:32:59 -07:00
docs [intel pt] Add TSC timestamps 2021-07-20 16:29:17 -07:00
examples [lldb/Plugins] Add ScriptedProcess Process Plugin 2021-07-22 14:47:33 +02:00
include/lldb Create synthetic symbol names on demand to improve memory consumption and startup times. 2021-07-27 16:51:12 -07:00
packages/Python [lldb][NFC] Delete unused and commented out DWARF constants 2021-07-26 12:26:35 -07:00
resources [lldb] Remove stale LLDB-Info.plist 2021-01-08 10:12:16 -08:00
scripts Prefer /usr/bin/env xxx over /usr/bin/xxx where xxx = perl, python, awk 2021-02-25 11:32:27 +01:00
source [lldb] Add "memory tag write" --end-addr option 2021-07-28 14:05:40 +01:00
test [lldb] Add "memory tag write" --end-addr option 2021-07-28 14:05:40 +01:00
third_party/Python/module [lldb] Temporarily bump the max length of the pexpect error message to diagnose an lldb-aarch64 test failure 2021-07-28 11:47:54 +02:00
tools Remove the DarwinLog functionality from debguserver 2021-07-20 00:36:56 -07:00
unittests [lldb][AArch64] Add memory tag writing to lldb 2021-07-27 15:18:42 +01:00
utils [lldb] Match test dependencies name to other LLVM projects. 2021-05-21 00:10:27 -07:00
.clang-format
.clang-tidy [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
.gitignore
CMakeLists.txt [LLDB] Don't use the local python to set a default for LLDB_PYTHON_RELATIVE_PATH when cross compiling. 2021-05-11 14:04:41 +03:00
CODE_OWNERS.txt
LICENSE.TXT
use_lldb_suite_root.py