| //===-- ScriptedProcessPythonInterface.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_SCRIPTEDPROCESSPYTHONINTERFACE_H | |
| #define LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTEDPROCESSPYTHONINTERFACE_H | |
| #include "lldb/Host/Config.h" | |
| #if LLDB_ENABLE_PYTHON | |
| #include "lldb/Interpreter/ScriptedProcessInterface.h" | |
| namespace lldb_private { | |
| class ScriptInterpreterPythonImpl; | |
| class ScriptedProcessPythonInterface : public ScriptedProcessInterface { | |
| public: | |
| ScriptedProcessPythonInterface(ScriptInterpreterPythonImpl &interpreter) | |
| : ScriptedProcessInterface(), m_interpreter(interpreter) {} | |
| StructuredData::GenericSP | |
| CreatePluginObject(const llvm::StringRef class_name, lldb::TargetSP target_sp, | |
| StructuredData::DictionarySP args_sp) override; | |
| Status Launch() override; | |
| Status Resume() override; | |
| lldb::MemoryRegionInfoSP | |
| GetMemoryRegionContainingAddress(lldb::addr_t address) override; | |
| StructuredData::DictionarySP GetThreadWithID(lldb::tid_t tid) override; | |
| StructuredData::DictionarySP GetRegistersForThread(lldb::tid_t tid) override; | |
| lldb::DataExtractorSP ReadMemoryAtAddress(lldb::addr_t address, size_t size, | |
| Status &error) override; | |
| StructuredData::DictionarySP GetLoadedImages() override; | |
| lldb::pid_t GetProcessID() override; | |
| bool IsAlive() override; | |
| protected: | |
| size_t GetGenericInteger(llvm::StringRef method_name); | |
| Status LaunchOrResume(llvm::StringRef method_name); | |
| private: | |
| // The lifetime is managed by the ScriptInterpreter | |
| ScriptInterpreterPythonImpl &m_interpreter; | |
| StructuredData::GenericSP m_object_instance_sp; | |
| }; | |
| } // namespace lldb_private | |
| #endif // LLDB_ENABLE_PYTHON | |
| #endif // LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTEDPROCESSPYTHONINTERFACE_H |