[all-commits] [llvm/llvm-project] 98b565: [lldb][AArch64] Mark mismatched tags in tag read o...
David Spickett via All-commits
all-commits at lists.llvm.org
Fri Jul 30 03:48:13 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 98b5659b53ff93f3b68e48ea28ec54081196ae3b
https://github.com/llvm/llvm-project/commit/98b5659b53ff93f3b68e48ea28ec54081196ae3b
Author: David Spickett <david.spickett at linaro.org>
Date: 2021-07-30 (Fri, 30 Jul 2021)
Changed paths:
M lldb/source/Commands/CommandObjectMemoryTag.cpp
M lldb/test/API/linux/aarch64/mte_tag_access/TestAArch64LinuxMTEMemoryTagAccess.py
Log Message:
-----------
[lldb][AArch64] Mark mismatched tags in tag read output
The "memory tag read" command will now tell you
when the allocation tag read does not match the logical
tag.
(lldb) memory tag read mte_buf+(8*16) mte_buf+(8*16)+48
Logical tag: 0x9
Allocation tags:
[0xfffff7ff7080, 0xfffff7ff7090): 0x8 (mismatch)
[0xfffff7ff7090, 0xfffff7ff70a0): 0x9
[0xfffff7ff70a0, 0xfffff7ff70b0): 0xa (mismatch)
The logical tag will be taken from the start address
so the end could have a different tag. You could for example
read from ptr_to_array_1 to ptr_to_array_2. Where the latter
is tagged differently to prevent buffer overflow.
The existing command will read 1 granule if you leave
off the end address. So you can also use it as a quick way
to check a single location.
(lldb) memory tag read mte_buf
Logical tag: 0x9
Allocation tags:
[0xfffff7ff7000, 0xfffff7ff7010): 0x0 (mismatch)
This avoids the need for a seperate "memory tag check" command.
Reviewed By: omjavaid
Differential Revision: https://reviews.llvm.org/D106880
More information about the All-commits
mailing list