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<AbstractMethodRequirement>
35 GetAbstractMethodRequirements()
const override {
36 return llvm::SmallVector<AbstractMethodRequirement>(
37 {{
"read_memory_at_address", 4},
39 {
"get_scripted_thread_plugin"}});
42 StructuredData::DictionarySP GetCapabilities()
override;
44 Status Attach(
const ProcessAttachInfo &attach_info)
override;
50 std::optional<MemoryRegionInfo>
52 Status &
error)
override;
54 StructuredData::DictionarySP GetThreadsInfo()
override;
59 Status &
error)
override;
63 Status &
error)
override;
65 StructuredData::ArraySP GetLoadedImages()
override;
69 bool IsAlive()
override;
71 std::optional<std::string> GetScriptedThreadPluginName()
override;
73 StructuredData::DictionarySP GetMetadata()
override;
75 static void Initialize();
77 static void Terminate();
79 static llvm::StringRef GetPluginNameStatic() {
80 return "ScriptedProcessPythonInterface";
83 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