aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp')
-rw-r--r--lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
index 3c67e26..07b41be 100644
--- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
@@ -3829,6 +3829,29 @@ ProcessGDBRemote::GetLoadedDynamicLibrariesInfos_sender(
return object_sp;
}
+StructuredData::ObjectSP ProcessGDBRemote::GetDynamicLoaderProcessState() {
+ StructuredData::ObjectSP object_sp;
+ StructuredData::ObjectSP args_dict(new StructuredData::Dictionary());
+
+ if (m_gdb_comm.GetDynamicLoaderProcessStateSupported()) {
+ StringExtractorGDBRemote response;
+ response.SetResponseValidatorToJSON();
+ if (m_gdb_comm.SendPacketAndWaitForResponse("jGetDyldProcessState",
+ response) ==
+ GDBRemoteCommunication::PacketResult::Success) {
+ StringExtractorGDBRemote::ResponseType response_type =
+ response.GetResponseType();
+ if (response_type == StringExtractorGDBRemote::eResponse) {
+ if (!response.Empty()) {
+ object_sp =
+ StructuredData::ParseJSON(std::string(response.GetStringRef()));
+ }
+ }
+ }
+ }
+ return object_sp;
+}
+
StructuredData::ObjectSP ProcessGDBRemote::GetSharedCacheInfo() {
StructuredData::ObjectSP object_sp;
StructuredData::ObjectSP args_dict(new StructuredData::Dictionary());