9#ifndef LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_INTERFACES_SCRIPTEDPROCESSPYTHONINTERFACE_H
10#define LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_INTERFACES_SCRIPTEDPROCESSPYTHONINTERFACE_H
12#include "lldb/Host/Config.h"
22class ScriptedProcessPythonInterface :
public ScriptedProcessInterface,
23 public ScriptedPythonInterface,
24 public PluginInterface {
26 ScriptedProcessPythonInterface(ScriptInterpreterPythonImpl &interpreter);
28 llvm::Expected<StructuredData::GenericSP>
29 CreatePluginObject(
const llvm::StringRef class_name,
30 ExecutionContext &exe_ctx,
31 StructuredData::DictionarySP args_sp,
32 StructuredData::Generic *script_obj =
nullptr)
override;
34 llvm::SmallVector<llvm::StringLiteral> GetAbstractMethods()
const override {
35 return llvm::SmallVector<llvm::StringLiteral>(
36 {
"read_memory_at_address",
"is_alive",
"get_scripted_thread_plugin"});
39 StructuredData::DictionarySP GetCapabilities()
override;
41 Status Attach(
const ProcessAttachInfo &attach_info)
override;
47 std::optional<MemoryRegionInfo>
49 Status &
error)
override;
51 StructuredData::DictionarySP GetThreadsInfo()
override;
56 Status &
error)
override;
60 Status &
error)
override;
62 StructuredData::ArraySP GetLoadedImages()
override;
66 bool IsAlive()
override;
68 std::optional<std::string> GetScriptedThreadPluginName()
override;
70 StructuredData::DictionarySP GetMetadata()
override;
72 static void Initialize();
74 static void Terminate();
76 static llvm::StringRef GetPluginNameStatic() {
77 return "ScriptedProcessPythonInterface";
80 llvm::StringRef GetPluginName()
override {
return GetPluginNameStatic(); }
static llvm::raw_ostream & error(Stream &strm)
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::ScriptedThreadInterface > ScriptedThreadInterfaceSP
std::shared_ptr< lldb_private::DataExtractor > DataExtractorSP