//===-- SBExecutionContext.cpp ------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "lldb/API/SBExecutionContext.h" #include "lldb/API/SBTarget.h" #include "lldb/API/SBProcess.h" #include "lldb/API/SBThread.h" #include "lldb/API/SBFrame.h" #include "lldb/Target/ExecutionContext.h" using namespace lldb; using namespace lldb_private; SBExecutionContext::SBExecutionContext() : m_exe_ctx_sp() { } SBExecutionContext::SBExecutionContext (const lldb::SBExecutionContext &rhs) : m_exe_ctx_sp(rhs.m_exe_ctx_sp) { } SBExecutionContext::SBExecutionContext (lldb::ExecutionContextRefSP exe_ctx_ref_sp) : m_exe_ctx_sp(exe_ctx_ref_sp) { } SBExecutionContext::SBExecutionContext (const lldb::SBTarget &target) : m_exe_ctx_sp(new ExecutionContextRef()) { m_exe_ctx_sp->SetTargetSP(target.GetSP()); } SBExecutionContext::SBExecutionContext (const lldb::SBProcess &process) : m_exe_ctx_sp(new ExecutionContextRef()) { m_exe_ctx_sp->SetProcessSP(process.GetSP()); } SBExecutionContext::SBExecutionContext (lldb::SBThread thread) : m_exe_ctx_sp(new ExecutionContextRef()) { m_exe_ctx_sp->SetThreadPtr(thread.get()); } SBExecutionContext::SBExecutionContext (const lldb::SBFrame &frame) : m_exe_ctx_sp(new ExecutionContextRef()) { m_exe_ctx_sp->SetFrameSP(frame.GetFrameSP()); } SBExecutionContext::~SBExecutionContext() { } const SBExecutionContext & SBExecutionContext::operator = (const lldb::SBExecutionContext &rhs) { m_exe_ctx_sp = rhs.m_exe_ctx_sp; return *this; } ExecutionContextRef * SBExecutionContext::get () const { return m_exe_ctx_sp.get(); } SBTarget SBExecutionContext::GetTarget () const { SBTarget sb_target; if (m_exe_ctx_sp) { TargetSP target_sp(m_exe_ctx_sp->GetTargetSP()); if (target_sp) sb_target.SetSP(target_sp); } return sb_target; } SBProcess SBExecutionContext::GetProcess () const { SBProcess sb_process; if (m_exe_ctx_sp) { ProcessSP process_sp(m_exe_ctx_sp->GetProcessSP()); if (process_sp) sb_process.SetSP(process_sp); } return sb_process; } SBThread SBExecutionContext::GetThread () const { SBThread sb_thread; if (m_exe_ctx_sp) { ThreadSP thread_sp(m_exe_ctx_sp->GetThreadSP()); if (thread_sp) sb_thread.SetThread(thread_sp); } return sb_thread; } SBFrame SBExecutionContext::GetFrame () const { SBFrame sb_frame; if (m_exe_ctx_sp) { StackFrameSP frame_sp(m_exe_ctx_sp->GetFrameSP()); if (frame_sp) sb_frame.SetFrameSP(frame_sp); } return sb_frame; }