diff options
author | Med Ismail Bennani <medismail.bennani@gmail.com> | 2023-01-30 16:53:39 -0800 |
---|---|---|
committer | Med Ismail Bennani <medismail.bennani@gmail.com> | 2023-03-03 19:33:02 -0800 |
commit | 2d5348be2561402e284e26a9adf3a2e28e70c1f5 (patch) | |
tree | 1b4c4fd7fffe8b22da6b789a5c102b974f908550 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp | |
parent | e6cac17b563f2e2bc7d04347b0b40a9fe12334c9 (diff) | |
download | llvm-2d5348be2561402e284e26a9adf3a2e28e70c1f5.zip llvm-2d5348be2561402e284e26a9adf3a2e28e70c1f5.tar.gz llvm-2d5348be2561402e284e26a9adf3a2e28e70c1f5.tar.bz2 |
[lldb/Plugins] Add ScriptedProcess::GetCapabilities affordance (NFC)
This patch introduces a new method to the Scripted Process interface,
GetCapabilities.
This returns a dictionary that contains a list of flags that the
ScriptedProcess instance supports. This can be used for instance, to
force symbol lookup, when loading dynamic libraries in the scripted process.
Differential Revision: https://reviews.llvm.org/D142059
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp')
-rw-r--r-- | lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp index 6f087e8..3a1db7f 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp +++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp @@ -56,6 +56,17 @@ StructuredData::GenericSP ScriptedProcessPythonInterface::CreatePluginObject( return m_object_instance_sp; } +StructuredData::DictionarySP ScriptedProcessPythonInterface::GetCapabilities() { + Status error; + StructuredData::DictionarySP dict = + Dispatch<StructuredData::DictionarySP>("get_capabilities", error); + + if (!CheckStructuredDataObject(LLVM_PRETTY_FUNCTION, dict, error)) + return {}; + + return dict; +} + Status ScriptedProcessPythonInterface::Launch() { return GetStatusFromMethod("launch"); } @@ -140,14 +151,8 @@ StructuredData::ArraySP ScriptedProcessPythonInterface::GetLoadedImages() { StructuredData::ArraySP array = Dispatch<StructuredData::ArraySP>("get_loaded_images", error); - if (!array || !array->IsValid() || error.Fail()) { - return ScriptedInterface::ErrorWithMessage<StructuredData::ArraySP>( - LLVM_PRETTY_FUNCTION, - llvm::Twine("Null or invalid object (" + - llvm::Twine(error.AsCString()) + llvm::Twine(").")) - .str(), - error); - } + if (!CheckStructuredDataObject(LLVM_PRETTY_FUNCTION, array, error)) + return {}; return array; } |