1 //===-- ScriptedProcessInterface.h ------------------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLDB_INTERPRETER_SCRIPTEDPROCESSINTERFACE_H 10 #define LLDB_INTERPRETER_SCRIPTEDPROCESSINTERFACE_H 11 12 #include "lldb/Core/StructuredDataImpl.h" 13 #include "lldb/Interpreter/ScriptInterpreter.h" 14 #include "lldb/lldb-private.h" 15 16 #include <string> 17 18 namespace lldb_private { 19 class ScriptedProcessInterface { 20 public: ScriptedProcessInterface()21 ScriptedProcessInterface() : m_object_instance_sp(nullptr) {} 22 23 virtual ~ScriptedProcessInterface() = default; 24 25 virtual StructuredData::GenericSP CreatePluginObject(const llvm::StringRef class_name,lldb::TargetSP target_sp,StructuredData::DictionarySP args_sp)26 CreatePluginObject(const llvm::StringRef class_name, lldb::TargetSP target_sp, 27 StructuredData::DictionarySP args_sp) { 28 return nullptr; 29 } 30 Launch()31 virtual Status Launch() { return Status("ScriptedProcess did not launch"); } 32 Resume()33 virtual Status Resume() { return Status("ScriptedProcess did not resume"); } 34 ShouldStop()35 virtual bool ShouldStop() { return true; } 36 Stop()37 virtual Status Stop() { return Status("ScriptedProcess did not stop"); } 38 39 virtual lldb::MemoryRegionInfoSP GetMemoryRegionContainingAddress(lldb::addr_t address)40 GetMemoryRegionContainingAddress(lldb::addr_t address) { 41 return nullptr; 42 } 43 GetThreadWithID(lldb::tid_t tid)44 virtual StructuredData::DictionarySP GetThreadWithID(lldb::tid_t tid) { 45 return nullptr; 46 } 47 GetRegistersForThread(lldb::tid_t tid)48 virtual StructuredData::DictionarySP GetRegistersForThread(lldb::tid_t tid) { 49 return nullptr; 50 } 51 52 virtual lldb::DataExtractorSP ReadMemoryAtAddress(lldb::addr_t address,size_t size,Status & error)53 ReadMemoryAtAddress(lldb::addr_t address, size_t size, Status &error) { 54 return nullptr; 55 } 56 GetLoadedImages()57 virtual StructuredData::DictionarySP GetLoadedImages() { return nullptr; } 58 GetProcessID()59 virtual lldb::pid_t GetProcessID() { return LLDB_INVALID_PROCESS_ID; } 60 IsAlive()61 virtual bool IsAlive() { return true; } 62 63 private: 64 StructuredData::ObjectSP m_object_instance_sp; 65 }; 66 } // namespace lldb_private 67 68 #endif // LLDB_INTERPRETER_SCRIPTEDPROCESSINTERFACE_H 69