[Lldb-commits] [lldb] c6b3da6 - [lldb] Remove memory_tagged from MemoryRegionInfo (#189617)
via lldb-commits
lldb-commits at lists.llvm.org
Tue Mar 31 04:47:54 PDT 2026
Author: David Spickett
Date: 2026-03-31T11:47:47Z
New Revision: c6b3da6b3eef3d49b5704950db052c10aabdcbf7
URL: https://github.com/llvm/llvm-project/commit/c6b3da6b3eef3d49b5704950db052c10aabdcbf7
DIFF: https://github.com/llvm/llvm-project/commit/c6b3da6b3eef3d49b5704950db052c10aabdcbf7.diff
LOG: [lldb] Remove memory_tagged from MemoryRegionInfo (#189617)
By turning SetMemoryTagged into a builder method (returns a reference to
self). Then only using that in the tests that need to change the default
of "don't know".
Added:
Modified:
lldb/include/lldb/Target/MemoryRegionInfo.h
lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
lldb/unittests/Process/Utility/MemoryTagManagerAArch64MTETest.cpp
lldb/unittests/Process/minidump/MinidumpParserTest.cpp
Removed:
################################################################################
diff --git a/lldb/include/lldb/Target/MemoryRegionInfo.h b/lldb/include/lldb/Target/MemoryRegionInfo.h
index db4afeca4caf0..099ee417ad779 100644
--- a/lldb/include/lldb/Target/MemoryRegionInfo.h
+++ b/lldb/include/lldb/Target/MemoryRegionInfo.h
@@ -28,10 +28,10 @@ class MemoryRegionInfo {
MemoryRegionInfo(RangeType range, OptionalBool read, OptionalBool write,
OptionalBool execute, OptionalBool shared,
OptionalBool mapped, ConstString name, OptionalBool flash,
- lldb::offset_t blocksize, OptionalBool memory_tagged)
+ lldb::offset_t blocksize)
: m_range(range), m_read(read), m_write(write), m_execute(execute),
m_shared(shared), m_mapped(mapped), m_name(name), m_flash(flash),
- m_blocksize(blocksize), m_memory_tagged(memory_tagged) {}
+ m_blocksize(blocksize) {}
RangeType &GetRange() { return m_range; }
@@ -75,7 +75,10 @@ class MemoryRegionInfo {
void SetBlocksize(lldb::offset_t blocksize) { m_blocksize = blocksize; }
- void SetMemoryTagged(OptionalBool val) { m_memory_tagged = val; }
+ MemoryRegionInfo &SetMemoryTagged(OptionalBool val) {
+ m_memory_tagged = val;
+ return *this;
+ }
MemoryRegionInfo &SetIsShadowStack(OptionalBool val) {
m_is_shadow_stack = val;
diff --git a/lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp b/lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
index c44ee33d38ac8..9e9c99164e49e 100644
--- a/lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
+++ b/lldb/unittests/Process/Utility/LinuxProcMapsTest.cpp
@@ -91,8 +91,7 @@ INSTANTIATE_TEST_SUITE_P(
MemoryRegionInfo::eYes, MemoryRegionInfo::eNo,
MemoryRegionInfo::eNo, MemoryRegionInfo::eYes,
ConstString("[abc]"),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eDontKnow),
+ MemoryRegionInfo::eDontKnow, 0),
},
"unexpected /proc/{pid}/maps exec permission char"),
// Single entry
@@ -103,8 +102,7 @@ INSTANTIATE_TEST_SUITE_P(
MemoryRegionInfo::eYes, MemoryRegionInfo::eYes,
MemoryRegionInfo::eNo, MemoryRegionInfo::eNo,
MemoryRegionInfo::eYes, ConstString("[heap]"),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eDontKnow),
+ MemoryRegionInfo::eDontKnow, 0),
},
""),
// Multiple entries
@@ -118,21 +116,18 @@ INSTANTIATE_TEST_SUITE_P(
MemoryRegionInfo::eNo, MemoryRegionInfo::eNo,
MemoryRegionInfo::eNo, MemoryRegionInfo::eNo,
MemoryRegionInfo::eYes, ConstString(nullptr),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eDontKnow),
+ MemoryRegionInfo::eDontKnow, 0),
MemoryRegionInfo(make_range(0x7fc094000000, 0x7fc094a00000),
MemoryRegionInfo::eNo, MemoryRegionInfo::eNo,
MemoryRegionInfo::eNo, MemoryRegionInfo::eYes,
MemoryRegionInfo::eYes, ConstString(nullptr),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eDontKnow),
+ MemoryRegionInfo::eDontKnow, 0),
MemoryRegionInfo(
make_range(0xffffffffff600000, 0xffffffffff601000),
MemoryRegionInfo::eYes, MemoryRegionInfo::eNo,
MemoryRegionInfo::eYes, MemoryRegionInfo::eNo,
MemoryRegionInfo::eYes, ConstString("[vsyscall]"),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eDontKnow),
+ MemoryRegionInfo::eDontKnow, 0),
},
"")));
@@ -157,8 +152,7 @@ INSTANTIATE_TEST_SUITE_P(
MemoryRegionInfo::eYes, MemoryRegionInfo::eYes,
MemoryRegionInfo::eNo, MemoryRegionInfo::eNo,
MemoryRegionInfo::eYes, ConstString("[foo]"),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eDontKnow),
+ MemoryRegionInfo::eDontKnow, 0),
},
"malformed /proc/{pid}/smaps entry, missing dash between address "
"range"),
@@ -177,8 +171,7 @@ INSTANTIATE_TEST_SUITE_P(
MemoryRegionInfo::eYes, MemoryRegionInfo::eYes,
MemoryRegionInfo::eNo, MemoryRegionInfo::eNo,
MemoryRegionInfo::eYes, ConstString("[foo]"),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eDontKnow),
+ MemoryRegionInfo::eDontKnow, 0),
},
""),
// Single shared region parses, has no flags
@@ -189,8 +182,7 @@ INSTANTIATE_TEST_SUITE_P(
MemoryRegionInfo::eYes, MemoryRegionInfo::eYes,
MemoryRegionInfo::eNo, MemoryRegionInfo::eYes,
MemoryRegionInfo::eYes, ConstString("[foo]"),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eDontKnow),
+ MemoryRegionInfo::eDontKnow, 0),
},
""),
// Single region with flags, other lines ignored
@@ -204,9 +196,9 @@ INSTANTIATE_TEST_SUITE_P(
MemoryRegionInfo::eYes, MemoryRegionInfo::eYes,
MemoryRegionInfo::eNo, MemoryRegionInfo::eNo,
MemoryRegionInfo::eYes, ConstString("[foo]"),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eYes)
- .SetIsShadowStack(MemoryRegionInfo::eNo),
+ MemoryRegionInfo::eDontKnow, 0)
+ .SetIsShadowStack(MemoryRegionInfo::eNo)
+ .SetMemoryTagged(MemoryRegionInfo::eYes),
},
""),
// Whitespace ignored
@@ -218,9 +210,9 @@ INSTANTIATE_TEST_SUITE_P(
MemoryRegionInfo::eYes, MemoryRegionInfo::eNo,
MemoryRegionInfo::eNo, MemoryRegionInfo::eYes,
ConstString(nullptr),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eYes)
- .SetIsShadowStack(MemoryRegionInfo::eNo),
+ MemoryRegionInfo::eDontKnow, 0)
+ .SetIsShadowStack(MemoryRegionInfo::eNo)
+ .SetMemoryTagged(MemoryRegionInfo::eYes),
},
""),
// VmFlags line means it has flag info, but nothing is set
@@ -232,9 +224,9 @@ INSTANTIATE_TEST_SUITE_P(
MemoryRegionInfo::eYes, MemoryRegionInfo::eNo,
MemoryRegionInfo::eNo, MemoryRegionInfo::eYes,
ConstString(nullptr),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eNo)
- .SetIsShadowStack(MemoryRegionInfo::eNo),
+ MemoryRegionInfo::eDontKnow, 0)
+ .SetIsShadowStack(MemoryRegionInfo::eNo)
+ .SetMemoryTagged(MemoryRegionInfo::eNo),
},
""),
// Handle some pages not having a flags line
@@ -249,15 +241,14 @@ INSTANTIATE_TEST_SUITE_P(
MemoryRegionInfo::eYes, MemoryRegionInfo::eYes,
MemoryRegionInfo::eNo, MemoryRegionInfo::eNo,
MemoryRegionInfo::eYes, ConstString("[foo]"),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eDontKnow),
+ MemoryRegionInfo::eDontKnow, 0),
MemoryRegionInfo(make_range(0x3333, 0x4444),
MemoryRegionInfo::eYes, MemoryRegionInfo::eNo,
MemoryRegionInfo::eYes, MemoryRegionInfo::eNo,
MemoryRegionInfo::eYes, ConstString("[bar]"),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eYes)
- .SetIsShadowStack(MemoryRegionInfo::eNo),
+ MemoryRegionInfo::eDontKnow, 0)
+ .SetIsShadowStack(MemoryRegionInfo::eNo)
+ .SetMemoryTagged(MemoryRegionInfo::eYes),
},
""),
// Handle no pages having a flags line (older kernels)
@@ -273,14 +264,12 @@ INSTANTIATE_TEST_SUITE_P(
MemoryRegionInfo::eYes, MemoryRegionInfo::eYes,
MemoryRegionInfo::eNo, MemoryRegionInfo::eNo,
MemoryRegionInfo::eYes, ConstString(nullptr),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eDontKnow),
+ MemoryRegionInfo::eDontKnow, 0),
MemoryRegionInfo(make_range(0x3333, 0x4444),
MemoryRegionInfo::eYes, MemoryRegionInfo::eNo,
MemoryRegionInfo::eYes, MemoryRegionInfo::eNo,
MemoryRegionInfo::eYes, ConstString(nullptr),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eDontKnow),
+ MemoryRegionInfo::eDontKnow, 0),
},
""),
// We must look for exact flag strings, ignoring substrings of longer
@@ -293,9 +282,9 @@ INSTANTIATE_TEST_SUITE_P(
MemoryRegionInfo::eYes, MemoryRegionInfo::eNo,
MemoryRegionInfo::eNo, MemoryRegionInfo::eYes,
ConstString(nullptr),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eNo)
- .SetIsShadowStack(MemoryRegionInfo::eNo),
+ MemoryRegionInfo::eDontKnow, 0)
+ .SetIsShadowStack(MemoryRegionInfo::eNo)
+ .SetMemoryTagged(MemoryRegionInfo::eNo),
},
""),
// "ss" means shadow stack.
@@ -307,9 +296,9 @@ INSTANTIATE_TEST_SUITE_P(
MemoryRegionInfo::eYes, MemoryRegionInfo::eNo,
MemoryRegionInfo::eNo, MemoryRegionInfo::eYes,
ConstString(nullptr),
- MemoryRegionInfo::eDontKnow, 0,
- MemoryRegionInfo::eNo)
- .SetIsShadowStack(MemoryRegionInfo::eYes),
+ MemoryRegionInfo::eDontKnow, 0)
+ .SetIsShadowStack(MemoryRegionInfo::eYes)
+ .SetMemoryTagged(MemoryRegionInfo::eNo),
},
"")));
diff --git a/lldb/unittests/Process/Utility/MemoryTagManagerAArch64MTETest.cpp b/lldb/unittests/Process/Utility/MemoryTagManagerAArch64MTETest.cpp
index 793b0795aaeae..47595d3fea26e 100644
--- a/lldb/unittests/Process/Utility/MemoryTagManagerAArch64MTETest.cpp
+++ b/lldb/unittests/Process/Utility/MemoryTagManagerAArch64MTETest.cpp
@@ -230,12 +230,12 @@ TEST(MemoryTagManagerAArch64MTETest, ExpandToGranule) {
static MemoryRegionInfo MakeRegionInfo(lldb::addr_t base, lldb::addr_t size,
bool tagged) {
- return MemoryRegionInfo(
- MemoryRegionInfo::RangeType(base, size), MemoryRegionInfo::eYes,
- MemoryRegionInfo::eYes, MemoryRegionInfo::eYes, MemoryRegionInfo::eNo,
- MemoryRegionInfo::eYes, ConstString(), MemoryRegionInfo::eNo, 0,
- /*memory_tagged=*/
- tagged ? MemoryRegionInfo::eYes : MemoryRegionInfo::eNo);
+ return MemoryRegionInfo(MemoryRegionInfo::RangeType(base, size),
+ MemoryRegionInfo::eYes, MemoryRegionInfo::eYes,
+ MemoryRegionInfo::eYes, MemoryRegionInfo::eNo,
+ MemoryRegionInfo::eYes, ConstString(),
+ MemoryRegionInfo::eNo, 0)
+ .SetMemoryTagged(tagged ? MemoryRegionInfo::eYes : MemoryRegionInfo::eNo);
}
TEST(MemoryTagManagerAArch64MTETest, MakeTaggedRange) {
diff --git a/lldb/unittests/Process/minidump/MinidumpParserTest.cpp b/lldb/unittests/Process/minidump/MinidumpParserTest.cpp
index cd0eb5c6016e7..f5aa73e0a4c76 100644
--- a/lldb/unittests/Process/minidump/MinidumpParserTest.cpp
+++ b/lldb/unittests/Process/minidump/MinidumpParserTest.cpp
@@ -385,15 +385,15 @@ TEST_F(MinidumpParserTest, GetMemoryRegionInfo) {
testing::Pair(
testing::ElementsAre(
MemoryRegionInfo({0x0, 0x10000}, no, no, no, unknown, no,
- ConstString(), unknown, 0, unknown),
+ ConstString(), unknown, 0),
MemoryRegionInfo({0x10000, 0x21000}, yes, yes, no, unknown, yes,
- ConstString(), unknown, 0, unknown),
+ ConstString(), unknown, 0),
MemoryRegionInfo({0x40000, 0x1000}, yes, no, no, unknown, yes,
- ConstString(), unknown, 0, unknown),
+ ConstString(), unknown, 0),
MemoryRegionInfo({0x7ffe0000, 0x1000}, yes, no, no, unknown, yes,
- ConstString(), unknown, 0, unknown),
+ ConstString(), unknown, 0),
MemoryRegionInfo({0x7ffe1000, 0xf000}, no, no, no, unknown, yes,
- ConstString(), unknown, 0, unknown)),
+ ConstString(), unknown, 0)),
true));
}
@@ -419,9 +419,9 @@ TEST_F(MinidumpParserTest, GetMemoryRegionInfoFromMemoryList) {
testing::Pair(
testing::ElementsAre(
MemoryRegionInfo({0x1000, 0x10}, yes, unknown, unknown, unknown,
- yes, ConstString(), unknown, 0, unknown),
+ yes, ConstString(), unknown, 0),
MemoryRegionInfo({0x2000, 0x20}, yes, unknown, unknown, unknown,
- yes, ConstString(), unknown, 0, unknown)),
+ yes, ConstString(), unknown, 0)),
false));
}
@@ -435,9 +435,9 @@ TEST_F(MinidumpParserTest, GetMemoryRegionInfoFromMemory64List) {
testing::Pair(
testing::ElementsAre(
MemoryRegionInfo({0x1000, 0x10}, yes, unknown, unknown, unknown,
- yes, ConstString(), unknown, 0, unknown),
+ yes, ConstString(), unknown, 0),
MemoryRegionInfo({0x2000, 0x20}, yes, unknown, unknown, unknown,
- yes, ConstString(), unknown, 0, unknown)),
+ yes, ConstString(), unknown, 0)),
false));
}
@@ -462,22 +462,22 @@ TEST_F(MinidumpParserTest, GetMemoryRegionInfoLinuxMaps) {
ConstString app_process("/system/bin/app_process");
ConstString linker("/system/bin/linker");
ConstString liblog("/system/lib/liblog.so");
- EXPECT_THAT(parser->BuildMemoryRegions(),
- testing::Pair(
- testing::ElementsAre(
- MemoryRegionInfo({0x400d9000, 0x2000}, yes, no, yes, no,
- yes, app_process, unknown, 0, unknown),
- MemoryRegionInfo({0x400db000, 0x1000}, yes, no, no, no,
- yes, app_process, unknown, 0, unknown),
- MemoryRegionInfo({0x400dc000, 0x1000}, yes, yes, no, no,
- yes, ConstString(), unknown, 0, unknown),
- MemoryRegionInfo({0x400ec000, 0x1000}, yes, no, no, no,
- yes, ConstString(), unknown, 0, unknown),
- MemoryRegionInfo({0x400ee000, 0x1000}, yes, yes, no, no,
- yes, linker, unknown, 0, unknown),
- MemoryRegionInfo({0x400fc000, 0x1000}, yes, yes, yes, no,
- yes, liblog, unknown, 0, unknown)),
- true));
+ EXPECT_THAT(
+ parser->BuildMemoryRegions(),
+ testing::Pair(testing::ElementsAre(
+ MemoryRegionInfo({0x400d9000, 0x2000}, yes, no, yes, no,
+ yes, app_process, unknown, 0),
+ MemoryRegionInfo({0x400db000, 0x1000}, yes, no, no, no,
+ yes, app_process, unknown, 0),
+ MemoryRegionInfo({0x400dc000, 0x1000}, yes, yes, no, no,
+ yes, ConstString(), unknown, 0),
+ MemoryRegionInfo({0x400ec000, 0x1000}, yes, no, no, no,
+ yes, ConstString(), unknown, 0),
+ MemoryRegionInfo({0x400ee000, 0x1000}, yes, yes, no, no,
+ yes, linker, unknown, 0),
+ MemoryRegionInfo({0x400fc000, 0x1000}, yes, yes, yes,
+ no, yes, liblog, unknown, 0)),
+ true));
}
TEST_F(MinidumpParserTest, GetMemoryRegionInfoLinuxMapsError) {
@@ -496,7 +496,7 @@ TEST_F(MinidumpParserTest, GetMemoryRegionInfoLinuxMapsError) {
EXPECT_THAT(parser->BuildMemoryRegions(),
testing::Pair(testing::ElementsAre(MemoryRegionInfo(
{0x400fc000, 0x1000}, yes, yes, yes, no, yes,
- ConstString(nullptr), unknown, 0, unknown)),
+ ConstString(nullptr), unknown, 0)),
true));
}
More information about the lldb-commits
mailing list