LLDB mainline
ScriptInterpreterBridge.cpp
Go to the documentation of this file.
1//===----------------------------------------------------------------------===//
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
15#include "lldb/API/SBData.h"
16#include "lldb/API/SBDebugger.h"
17#include "lldb/API/SBError.h"
18#include "lldb/API/SBEvent.h"
20#include "lldb/API/SBFrame.h"
24#include "lldb/API/SBStream.h"
26#include "lldb/API/SBTarget.h"
27#include "lldb/API/SBThread.h"
29#include "lldb/API/SBValue.h"
35
36using namespace lldb;
37using namespace lldb_private;
38
43
46 return thread_plan.GetSP();
47}
48
51 return breakpoint.m_opaque_wp.lock();
52}
53
58
63
66 return debugger.m_opaque_sp;
67}
68
73
75 const lldb::SBLaunchInfo &launch_info) {
76 return std::make_shared<ProcessLaunchInfo>(
77 *reinterpret_cast<ProcessLaunchInfo *>(launch_info.m_opaque_sp.get()));
78}
79
81 if (error.m_opaque_up)
82 return error.m_opaque_up->Clone();
83
84 return Status();
85}
86
89 if (thread.m_opaque_sp)
90 return thread.m_opaque_sp->GetThreadSP();
91 return nullptr;
92}
93
96 if (frame.m_opaque_sp)
97 return frame.m_opaque_sp->GetFrameSP();
98 return nullptr;
99}
100
102 return event.m_opaque_ptr;
103}
104
107 if (stream.m_opaque_up) {
108 lldb::StreamSP s = std::make_shared<lldb_private::StreamString>();
109 *s << reinterpret_cast<StreamString *>(stream.m_opaque_up.get())->m_packet;
110 return s;
111 }
112
113 return nullptr;
114}
115
117 const lldb::SBSymbolContext &sb_sym_ctx) {
118 if (sb_sym_ctx.m_opaque_up)
119 return *sb_sym_ctx.m_opaque_up;
120 return {};
121}
122
123std::optional<lldb_private::MemoryRegionInfo>
125 const lldb::SBMemoryRegionInfo &mem_region) {
126 if (!mem_region.m_opaque_up)
127 return std::nullopt;
128 return *mem_region.m_opaque_up.get();
129}
130
135
140
143 return target.m_opaque_sp;
144}
145
148 if (!value.m_opaque_sp)
149 return lldb::ValueObjectSP();
150
152 return locker.GetLockedSP(*value.m_opaque_sp);
153}
static llvm::raw_ostream & error(Stream &strm)
ProcessAttachInfoSP m_opaque_sp
lldb::BreakpointLocationWP m_opaque_wp
lldb::BreakpointWP m_opaque_wp
std::unique_ptr< lldb_private::SBCommandReturnObjectImpl > m_opaque_up
lldb::DataExtractorSP m_opaque_sp
Definition SBData.h:159
lldb::DebuggerSP m_opaque_sp
Definition SBDebugger.h:708
lldb::ExecutionContextRefSP m_exe_ctx_sp
Represents a list of SBFrame objects.
Definition SBFrameList.h:31
lldb::StackFrameListSP m_opaque_sp
Definition SBFrameList.h:91
lldb::ExecutionContextRefSP m_opaque_sp
Definition SBFrame.h:251
std::shared_ptr< lldb_private::SBLaunchInfoImpl > m_opaque_sp
lldb::MemoryRegionInfoUP m_opaque_up
std::unique_ptr< lldb_private::Stream > m_opaque_up
Definition SBStream.h:122
std::unique_ptr< lldb_private::SymbolContext > m_opaque_up
lldb::TargetSP m_opaque_sp
Definition SBTarget.h:1082
lldb::ThreadPlanSP GetSP() const
ValueImplSP m_opaque_sp
Definition SBValue.h:548
static SymbolContext GetSymbolContext(const lldb::SBSymbolContext &sym_ctx)
static lldb::DataExtractorSP GetDataExtractor(const lldb::SBData &data)
static lldb::BreakpointLocationSP GetBreakpointLocation(const lldb::SBBreakpointLocation &break_loc)
static lldb::ProcessLaunchInfoSP GetProcessLaunchInfo(const lldb::SBLaunchInfo &launch_info)
static CommandReturnObject * GetCommandReturnObject(const lldb::SBCommandReturnObject &cmd_retobj)
static lldb::BreakpointSP GetBreakpoint(const lldb::SBBreakpoint &breakpoint)
static lldb::ThreadSP GetThread(const lldb::SBThread &thread)
static lldb::ExecutionContextRefSP GetExecutionContextRef(const lldb::SBExecutionContext &exe_ctx)
static lldb::TargetSP GetTarget(const lldb::SBTarget &target)
static lldb::DebuggerSP GetDebugger(const lldb::SBDebugger &debugger)
static lldb::ProcessAttachInfoSP GetProcessAttachInfo(const lldb::SBAttachInfo &attach_info)
static lldb::StackFrameSP GetStackFrame(const lldb::SBFrame &frame)
static lldb::StackFrameListSP GetStackFrameList(const lldb::SBFrameList &frame_list)
static lldb::StreamSP GetStream(const lldb::SBStream &stream)
static Event * GetEvent(const lldb::SBEvent &event)
static std::optional< MemoryRegionInfo > GetMemoryRegionInfo(const lldb::SBMemoryRegionInfo &mem_region)
static lldb::ValueObjectSP GetValueObject(const lldb::SBValue &value)
static lldb::ThreadPlanSP GetThreadPlan(const lldb::SBThreadPlan &thread_plan)
static Status GetStatus(const lldb::SBError &error)
An error handling class.
Definition Status.h:118
Defines a symbol context baton that can be handed other debug core functions.
lldb::ValueObjectSP GetLockedSP(ValueImpl &in_value)
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::ThreadPlan > ThreadPlanSP
std::shared_ptr< lldb_private::StackFrame > StackFrameSP
std::shared_ptr< lldb_private::BreakpointLocation > BreakpointLocationSP
std::shared_ptr< lldb_private::Thread > ThreadSP
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP
std::shared_ptr< lldb_private::ProcessAttachInfo > ProcessAttachInfoSP
std::shared_ptr< lldb_private::Stream > StreamSP
std::shared_ptr< lldb_private::Breakpoint > BreakpointSP
std::shared_ptr< lldb_private::Debugger > DebuggerSP
std::shared_ptr< lldb_private::Target > TargetSP
std::shared_ptr< lldb_private::DataExtractor > DataExtractorSP
std::shared_ptr< lldb_private::ProcessLaunchInfo > ProcessLaunchInfoSP
std::shared_ptr< lldb_private::StackFrameList > StackFrameListSP
std::shared_ptr< lldb_private::ExecutionContextRef > ExecutionContextRefSP