[lldb] Make use of Scripted{Python,}Interface for ScriptedThreadPlan (#70392)
This patch makes ScriptedThreadPlan conforming to the ScriptedInterface
& ScriptedPythonInterface facilities by introducing 2
ScriptedThreadPlanInterface & ScriptedThreadPlanPythonInterface classes.
This allows us to get rid of every ScriptedThreadPlan-specific SWIG
method and re-use the same affordances as other scripting offordances,
like Scripted{Process,Thread,Platform} & OperatingSystem.
To do so, this adds new transformer methods for `ThreadPlan`, `Stream` &
`Event`, to allow the bijection between C++ objects and their python
counterparts.
Signed-off-by: Med Ismail Bennani <ismail@bennani.ma>
This commit is contained in:
1 parent
c2f642d90d
commit
4b3cd379cc
23 files changed
+401
-407
No files matched your search
+44
@@ -0,0 +1,44 @@
|
||||
//===-- ScriptedThreadPlanPythonInterface.h ---------------------*- C++ -*-===//
|
||||
//
|
||||
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||
// See https://llvm.org/LICENSE.txt for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_INTERFACES_SCRIPTEDTHREADPLANPYTHONINTERFACE_H
|
||||
#define LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_INTERFACES_SCRIPTEDTHREADPLANPYTHONINTERFACE_H
|
||||
|
||||
#include "lldb/Host/Config.h"
|
||||
|
||||
#if LLDB_ENABLE_PYTHON
|
||||
|
||||
#include "ScriptedPythonInterface.h"
|
||||
#include "lldb/Interpreter/Interfaces/ScriptedThreadPlanInterface.h"
|
||||
#include <optional>
|
||||
|
||||
namespace lldb_private {
|
||||
class ScriptedThreadPlanPythonInterface : public ScriptedThreadPlanInterface,
|
||||
public ScriptedPythonInterface {
|
||||
public:
|
||||
ScriptedThreadPlanPythonInterface(ScriptInterpreterPythonImpl &interpreter);
|
||||
|
||||
llvm::Expected<StructuredData::GenericSP>
|
||||
CreatePluginObject(const llvm::StringRef class_name,
|
||||
lldb::ThreadPlanSP thread_plan_sp,
|
||||
const StructuredDataImpl &args_sp) override;
|
||||
|
||||
llvm::Expected<bool> ExplainsStop(Event *event) override;
|
||||
|
||||
llvm::Expected<bool> ShouldStop(Event *event) override;
|
||||
|
||||
llvm::Expected<bool> IsStale() override;
|
||||
|
||||
lldb::StateType GetRunState() override;
|
||||
|
||||
llvm::Expected<bool> GetStopDescription(lldb_private::Stream *s) override;
|
||||
};
|
||||
} // namespace lldb_private
|
||||
|
||||
#endif // LLDB_ENABLE_PYTHON
|
||||
#endif // LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_INTERFACES_SCRIPTEDTHREADPLANPYTHONINTERFACE_H
|
||||
Reference in new issue
Block a user