|  | //===-- 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 |