11f6a57c1SMed Ismail Bennani //===-- ScriptedProcessPythonInterface.h ------------------------*- C++ -*-===// 21f6a57c1SMed Ismail Bennani // 31f6a57c1SMed Ismail Bennani // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 41f6a57c1SMed Ismail Bennani // See https://llvm.org/LICENSE.txt for license information. 51f6a57c1SMed Ismail Bennani // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 61f6a57c1SMed Ismail Bennani // 71f6a57c1SMed Ismail Bennani //===----------------------------------------------------------------------===// 81f6a57c1SMed Ismail Bennani 91f6a57c1SMed Ismail Bennani #ifndef LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTEDPROCESSPYTHONINTERFACE_H 101f6a57c1SMed Ismail Bennani #define LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTEDPROCESSPYTHONINTERFACE_H 111f6a57c1SMed Ismail Bennani 121f6a57c1SMed Ismail Bennani #include "lldb/Host/Config.h" 131f6a57c1SMed Ismail Bennani 141f6a57c1SMed Ismail Bennani #if LLDB_ENABLE_PYTHON 151f6a57c1SMed Ismail Bennani 163925204cSMed Ismail Bennani #include "ScriptedPythonInterface.h" 171f6a57c1SMed Ismail Bennani #include "lldb/Interpreter/ScriptedProcessInterface.h" 181f6a57c1SMed Ismail Bennani 191f6a57c1SMed Ismail Bennani namespace lldb_private { 203925204cSMed Ismail Bennani class ScriptedProcessPythonInterface : public ScriptedProcessInterface, 213925204cSMed Ismail Bennani public ScriptedPythonInterface { 221f6a57c1SMed Ismail Bennani public: 233925204cSMed Ismail Bennani ScriptedProcessPythonInterface(ScriptInterpreterPythonImpl &interpreter); 241f6a57c1SMed Ismail Bennani 251f6a57c1SMed Ismail Bennani StructuredData::GenericSP 263925204cSMed Ismail Bennani CreatePluginObject(const llvm::StringRef class_name, 273925204cSMed Ismail Bennani ExecutionContext &exe_ctx, 281f6a57c1SMed Ismail Bennani StructuredData::DictionarySP args_sp) override; 291f6a57c1SMed Ismail Bennani 301f6a57c1SMed Ismail Bennani Status Launch() override; 311f6a57c1SMed Ismail Bennani 321f6a57c1SMed Ismail Bennani Status Resume() override; 331f6a57c1SMed Ismail Bennani 34312b43daSMed Ismail Bennani bool ShouldStop() override; 35312b43daSMed Ismail Bennani 36312b43daSMed Ismail Bennani Status Stop() override; 37312b43daSMed Ismail Bennani 38a758c9f7SMed Ismail Bennani llvm::Optional<MemoryRegionInfo> 39a758c9f7SMed Ismail Bennani GetMemoryRegionContainingAddress(lldb::addr_t address, 40a758c9f7SMed Ismail Bennani Status &error) override; 411f6a57c1SMed Ismail Bennani 42*4858fe04SMed Ismail Bennani StructuredData::DictionarySP GetThreadsInfo() override; 43*4858fe04SMed Ismail Bennani 441f6a57c1SMed Ismail Bennani StructuredData::DictionarySP GetThreadWithID(lldb::tid_t tid) override; 451f6a57c1SMed Ismail Bennani 461f6a57c1SMed Ismail Bennani StructuredData::DictionarySP GetRegistersForThread(lldb::tid_t tid) override; 471f6a57c1SMed Ismail Bennani 481f6a57c1SMed Ismail Bennani lldb::DataExtractorSP ReadMemoryAtAddress(lldb::addr_t address, size_t size, 491f6a57c1SMed Ismail Bennani Status &error) override; 501f6a57c1SMed Ismail Bennani 511f6a57c1SMed Ismail Bennani StructuredData::DictionarySP GetLoadedImages() override; 521f6a57c1SMed Ismail Bennani 531f6a57c1SMed Ismail Bennani lldb::pid_t GetProcessID() override; 541f6a57c1SMed Ismail Bennani 551f6a57c1SMed Ismail Bennani bool IsAlive() override; 5659d8dd79SMed Ismail Bennani 5759d8dd79SMed Ismail Bennani llvm::Optional<std::string> GetScriptedThreadPluginName() override; 5859d8dd79SMed Ismail Bennani 5959d8dd79SMed Ismail Bennani private: 6059d8dd79SMed Ismail Bennani lldb::ScriptedThreadInterfaceSP GetScriptedThreadInterface() override; 611f6a57c1SMed Ismail Bennani }; 621f6a57c1SMed Ismail Bennani } // namespace lldb_private 631f6a57c1SMed Ismail Bennani 641f6a57c1SMed Ismail Bennani #endif // LLDB_ENABLE_PYTHON 651f6a57c1SMed Ismail Bennani #endif // LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTEDPROCESSPYTHONINTERFACE_H 66