aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/IdentifierTable.cpp
diff options
context:
space:
mode:
authorDavid Spickett <david.spickett@linaro.org>2021-10-29 16:11:14 +0100
committerDavid Spickett <david.spickett@linaro.org>2022-01-26 14:40:39 +0000
commit070090d08eb506187f7203bd3b321ca1e74d9d5c (patch)
tree5ff3be3614f31f370b51aef72c8cd467946dfcd9 /clang/lib/Basic/IdentifierTable.cpp
parent903c3d2863b9d0ae760a2f45e0e934f1d12cd1d4 (diff)
downloadllvm-070090d08eb506187f7203bd3b321ca1e74d9d5c.zip
llvm-070090d08eb506187f7203bd3b321ca1e74d9d5c.tar.gz
llvm-070090d08eb506187f7203bd3b321ca1e74d9d5c.tar.bz2
[lldb] Add option to show memory tags in memory read output
This adds an option --show-tags to "memory read". (lldb) memory read mte_buf mte_buf+32 -f "x" -s8 --show-tags 0x900fffff7ff8000: 0x0000000000000000 0x0000000000000000 (tag: 0x0) 0x900fffff7ff8010: 0x0000000000000000 0x0000000000000000 (tag: 0x1) Tags are printed on the end of each line, if that line has any tags associated with it. Meaning that untagged memory output is unchanged. Tags are printed based on the granule(s) of memory that a line covers. So you may have lines with 1 tag, with many tags, no tags or partially tagged lines. In the case of partially tagged lines, untagged granules will show "<no tag>" so that the ordering is obvious. For example, a line that covers 2 granules where the first is not tagged: (lldb) memory read mte_buf-16 mte_buf+16 -l32 -f"x" --show-tags 0x900fffff7ff7ff0: 0x00000000 <...> (tags: <no tag> 0x0) Untagged lines will just not have the "(tags: ..." at all. Though they may be part of a larger output that does have some tagged lines. To do this I've extended DumpDataExtractor to also print memory tags where it has a valid execution context and is asked to print them. There are no special alignment requirements, simply use "memory read" as usual. All alignment is handled in DumpDataExtractor. We use MakeTaggedRanges to find all the tagged memory in the current dump, then read all that into a MemoryTagMap. The tag map is populated once in DumpDataExtractor and re-used for each subsequently printed line (or recursive call of DumpDataExtractor, which some formats do). Reviewed By: omjavaid Differential Revision: https://reviews.llvm.org/D107140
Diffstat (limited to 'clang/lib/Basic/IdentifierTable.cpp')
0 files changed, 0 insertions, 0 deletions