1 //===-- SBExecutionContext.h -----------------------------------------*- C++
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
8 //===----------------------------------------------------------------------===//
10 #ifndef LLDB_SBExecutionContext_h_
11 #define LLDB_SBExecutionContext_h_
13 #include "lldb/API/SBDefines.h"
20 class LLDB_API SBExecutionContext {
21 friend class SBCommandInterpreter;
26 SBExecutionContext(const lldb::SBExecutionContext &rhs);
28 SBExecutionContext(lldb::ExecutionContextRefSP exe_ctx_ref_sp);
30 SBExecutionContext(const lldb::SBTarget &target);
32 SBExecutionContext(const lldb::SBProcess &process);
34 SBExecutionContext(lldb::SBThread thread); // can't be a const& because
35 // SBThread::get() isn't itself a
38 SBExecutionContext(const lldb::SBFrame &frame);
40 ~SBExecutionContext();
42 const SBExecutionContext &operator=(const lldb::SBExecutionContext &rhs);
44 SBTarget GetTarget() const;
46 SBProcess GetProcess() const;
48 SBThread GetThread() const;
50 SBFrame GetFrame() const;
53 void reset(lldb::ExecutionContextRefSP &event_sp);
55 lldb_private::ExecutionContextRef *get() const;
58 mutable lldb::ExecutionContextRefSP m_exe_ctx_sp;
63 #endif // LLDB_SBExecutionContext_h_