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 namespace python { 20 class SWIGBridge; 21 } 22 } // namespace lldb_private 23 24 namespace lldb { 25 26 class LLDB_API SBExecutionContext { 27 friend class SBCommandInterpreter; 28 29 public: 30 SBExecutionContext(); 31 32 SBExecutionContext(const lldb::SBExecutionContext &rhs); 33 34 SBExecutionContext(const lldb::SBTarget &target); 35 36 SBExecutionContext(const lldb::SBProcess &process); 37 38 SBExecutionContext(lldb::SBThread thread); // can't be a const& because 39 // SBThread::get() isn't itself a 40 // const function 41 42 SBExecutionContext(const lldb::SBFrame &frame); 43 44 ~SBExecutionContext(); 45 46 const SBExecutionContext &operator=(const lldb::SBExecutionContext &rhs); 47 48 SBTarget GetTarget() const; 49 50 SBProcess GetProcess() const; 51 52 SBThread GetThread() const; 53 54 SBFrame GetFrame() const; 55 56 protected: 57 friend class lldb_private::python::SWIGBridge; 58 59 lldb_private::ExecutionContextRef *get() const; 60 61 SBExecutionContext(lldb::ExecutionContextRefSP exe_ctx_ref_sp); 62 63 private: 64 mutable lldb::ExecutionContextRefSP m_exe_ctx_sp; 65 }; 66 67 } // namespace lldb 68 69 #endif // LLDB_API_SBEXECUTIONCONTEXT_H 70