aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp')
-rw-r--r--lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
index 35fa93e..8cdeaac 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
@@ -2796,11 +2796,18 @@ GDBRemoteCommunicationServerLLGS::Handle_qMemoryRegionInfo(
// Flags
MemoryRegionInfo::OptionalBool memory_tagged =
region_info.GetMemoryTagged();
- if (memory_tagged != MemoryRegionInfo::eDontKnow) {
+ MemoryRegionInfo::OptionalBool is_shadow_stack =
+ region_info.IsShadowStack();
+
+ if (memory_tagged != MemoryRegionInfo::eDontKnow ||
+ is_shadow_stack != MemoryRegionInfo::eDontKnow) {
response.PutCString("flags:");
- if (memory_tagged == MemoryRegionInfo::eYes) {
- response.PutCString("mt");
- }
+ // Space is the separator.
+ if (memory_tagged == MemoryRegionInfo::eYes)
+ response.PutCString("mt ");
+ if (is_shadow_stack == MemoryRegionInfo::eYes)
+ response.PutCString("ss ");
+
response.PutChar(';');
}