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