1 //===-- SBExecutionContext.h -----------------------------------------*- C++ 2 //-*-===// 3 // 4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5 // See https://llvm.org/LICENSE.txt for license information. 6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef LLDB_API_SBEXECUTIONCONTEXT_H 11 #define LLDB_API_SBEXECUTIONCONTEXT_H 12 13 #include "lldb/API/SBDefines.h" 14 15 #include <cstdio> 16 #include <vector> 17 18 namespace lldb_private { 19 class ScriptInterpreter; 20 namespace python { 21 class SWIGBridge; 22 } 23 } // namespace lldb_private 24 25 namespace lldb { 26 27 class LLDB_API SBExecutionContext { 28 friend class SBCommandInterpreter; 29 30 public: 31 SBExecutionContext(); 32 33 SBExecutionContext(const lldb::SBExecutionContext &rhs); 34 35 SBExecutionContext(const lldb::SBTarget &target); 36 37 SBExecutionContext(const lldb::SBProcess &process); 38 39 SBExecutionContext(lldb::SBThread thread); // can't be a const& because 40 // SBThread::get() isn't itself a 41 // const function 42 43 SBExecutionContext(const lldb::SBFrame &frame); 44 45 ~SBExecutionContext(); 46 47 const SBExecutionContext &operator=(const lldb::SBExecutionContext &rhs); 48 49 SBTarget GetTarget() const; 50 51 SBProcess GetProcess() const; 52 53 SBThread GetThread() const; 54 55 SBFrame GetFrame() const; 56 57 protected: 58 friend class lldb_private::python::SWIGBridge; 59 friend class lldb_private::ScriptInterpreter; 60 61 lldb_private::ExecutionContextRef *get() const; 62 63 SBExecutionContext(lldb::ExecutionContextRefSP exe_ctx_ref_sp); 64 65 private: 66 mutable lldb::ExecutionContextRefSP m_exe_ctx_sp; 67 }; 68 69 } // namespace lldb 70 71 #endif // LLDB_API_SBEXECUTIONCONTEXT_H 72