diff options
author | Med Ismail Bennani <medismail.bennani@gmail.com> | 2023-03-06 13:17:43 -0800 |
---|---|---|
committer | Med Ismail Bennani <medismail.bennani@gmail.com> | 2023-03-06 13:17:43 -0800 |
commit | 20dbb29a1a94c60b556f8880ab841b150e83ab25 (patch) | |
tree | a51e3f55ca4408385bec8486808680dc705d06bf /lldb/source/Plugins/ScriptInterpreter/Python | |
parent | 480eb744982f2cecd9aa75ef32910fe023d8d4dc (diff) | |
download | llvm-20dbb29a1a94c60b556f8880ab841b150e83ab25.zip llvm-20dbb29a1a94c60b556f8880ab841b150e83ab25.tar.gz llvm-20dbb29a1a94c60b556f8880ab841b150e83ab25.tar.bz2 |
Revert "[lldb] Move ScriptedProcess private state update to implementation"
This reverts commit 3c33d72e7fa83beb8a9b39fb3b8ecf4ee00c697d.
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python')
4 files changed, 19 insertions, 17 deletions
diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h b/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h index 33092209..365d499 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h +++ b/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h @@ -201,7 +201,6 @@ template <> struct PythonFormat<short> : PassthroughFormat<short, 'h'> {}; template <> struct PythonFormat<unsigned short> : PassthroughFormat<unsigned short, 'H'> {}; template <> struct PythonFormat<int> : PassthroughFormat<int, 'i'> {}; -template <> struct PythonFormat<bool> : PassthroughFormat<bool, 'p'> {}; template <> struct PythonFormat<unsigned int> : PassthroughFormat<unsigned int, 'I'> {}; template <> struct PythonFormat<long> : PassthroughFormat<long, 'l'> {}; diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp index 0c6f308..cffa3bd 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp +++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp @@ -80,8 +80,21 @@ Status ScriptedProcessPythonInterface::Launch() { } Status ScriptedProcessPythonInterface::Resume() { - // When calling ScriptedProcess.Resume from lldb we should always stop. - return GetStatusFromMethod("resume", /*should_stop=*/true); + return GetStatusFromMethod("resume"); +} + +bool ScriptedProcessPythonInterface::ShouldStop() { + Status error; + StructuredData::ObjectSP obj = Dispatch("is_alive", error); + + if (!CheckStructuredDataObject(LLVM_PRETTY_FUNCTION, obj, error)) + return {}; + + return obj->GetBooleanValue(); +} + +Status ScriptedProcessPythonInterface::Stop() { + return GetStatusFromMethod("stop"); } std::optional<MemoryRegionInfo> diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.h b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.h index d1fedfe..b7b12b9 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.h +++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.h @@ -37,6 +37,10 @@ public: Status Resume() override; + bool ShouldStop() override; + + Status Stop() override; + std::optional<MemoryRegionInfo> GetMemoryRegionContainingAddress(lldb::addr_t address, Status &error) override; diff --git a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedPythonInterface.h b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedPythonInterface.h index 31757a2..a015bd1 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedPythonInterface.h +++ b/lldb/source/Plugins/ScriptInterpreter/Python/ScriptedPythonInterface.h @@ -113,11 +113,6 @@ protected: return {object}; } - python::PythonObject Transform(bool arg) { - // Boolean arguments need to be turned into python objects. - return python::PythonBoolean(arg); - } - python::PythonObject Transform(Status arg) { return python::ToSWIGWrapper(arg); } @@ -146,15 +141,6 @@ protected: original_arg = ExtractValueFromPythonObject<T>(transformed_arg, error); } - template <> - void ReverseTransform(bool &original_arg, - python::PythonObject transformed_arg, Status &error) { - python::PythonBoolean boolean_arg = python::PythonBoolean( - python::PyRefType::Borrowed, transformed_arg.get()); - if (boolean_arg.IsValid()) - original_arg = boolean_arg.GetValue(); - } - template <std::size_t... I, typename... Args> auto TransformTuple(const std::tuple<Args...> &args, std::index_sequence<I...>) { |