diff options
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp')
-rw-r--r-- | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp | 15 |
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(';'); } |