aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python
diff options
context:
space:
mode:
authorMed Ismail Bennani <medismail.bennani@gmail.com>2023-03-06 13:17:43 -0800
committerMed Ismail Bennani <medismail.bennani@gmail.com>2023-03-06 13:17:43 -0800
commit20dbb29a1a94c60b556f8880ab841b150e83ab25 (patch)
treea51e3f55ca4408385bec8486808680dc705d06bf /lldb/source/Plugins/ScriptInterpreter/Python
parent480eb744982f2cecd9aa75ef32910fe023d8d4dc (diff)
downloadllvm-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')
-rw-r--r--lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h1
-rw-r--r--lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.cpp17
-rw-r--r--lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.h4
-rw-r--r--lldb/source/Plugins/ScriptInterpreter/Python/ScriptedPythonInterface.h14
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...>) {