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, 28*d3e0f7e1SMed Ismail Bennani StructuredData::DictionarySP args_sp, 29*d3e0f7e1SMed Ismail Bennani StructuredData::Generic *script_obj = nullptr) override; 301f6a57c1SMed Ismail Bennani 311f6a57c1SMed Ismail Bennani Status Launch() override; 321f6a57c1SMed Ismail Bennani 331f6a57c1SMed Ismail Bennani Status Resume() override; 341f6a57c1SMed Ismail Bennani 35312b43daSMed Ismail Bennani bool ShouldStop() override; 36312b43daSMed Ismail Bennani 37312b43daSMed Ismail Bennani Status Stop() override; 38312b43daSMed Ismail Bennani 39a758c9f7SMed Ismail Bennani llvm::Optional<MemoryRegionInfo> 40a758c9f7SMed Ismail Bennani GetMemoryRegionContainingAddress(lldb::addr_t address, 41a758c9f7SMed Ismail Bennani Status &error) override; 421f6a57c1SMed Ismail Bennani 434858fe04SMed Ismail Bennani StructuredData::DictionarySP GetThreadsInfo() override; 444858fe04SMed Ismail Bennani 451f6a57c1SMed Ismail Bennani StructuredData::DictionarySP GetThreadWithID(lldb::tid_t tid) override; 461f6a57c1SMed Ismail Bennani 471f6a57c1SMed Ismail Bennani StructuredData::DictionarySP GetRegistersForThread(lldb::tid_t tid) override; 481f6a57c1SMed Ismail Bennani 491f6a57c1SMed Ismail Bennani lldb::DataExtractorSP ReadMemoryAtAddress(lldb::addr_t address, size_t size, 501f6a57c1SMed Ismail Bennani Status &error) override; 511f6a57c1SMed Ismail Bennani 521f6a57c1SMed Ismail Bennani StructuredData::DictionarySP GetLoadedImages() override; 531f6a57c1SMed Ismail Bennani 541f6a57c1SMed Ismail Bennani lldb::pid_t GetProcessID() override; 551f6a57c1SMed Ismail Bennani 561f6a57c1SMed Ismail Bennani bool IsAlive() override; 5759d8dd79SMed Ismail Bennani 5859d8dd79SMed Ismail Bennani llvm::Optional<std::string> GetScriptedThreadPluginName() override; 5959d8dd79SMed Ismail Bennani 6059d8dd79SMed Ismail Bennani private: 611b86344fSMed Ismail Bennani lldb::ScriptedThreadInterfaceSP CreateScriptedThreadInterface() override; 621f6a57c1SMed Ismail Bennani }; 631f6a57c1SMed Ismail Bennani } // namespace lldb_private 641f6a57c1SMed Ismail Bennani 651f6a57c1SMed Ismail Bennani #endif // LLDB_ENABLE_PYTHON 661f6a57c1SMed Ismail Bennani #endif // LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTEDPROCESSPYTHONINTERFACE_H 67