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"
28#include "lldb/API/SBValue.h"
34
35using namespace lldb;
36using namespace lldb_private;
37
42
45 return breakpoint.m_opaque_wp.lock();
46}
47
52
57
60 return debugger.m_opaque_sp;
61}
62
67
69 const lldb::SBLaunchInfo &launch_info) {
70 return std::make_shared<ProcessLaunchInfo>(
71 *reinterpret_cast<ProcessLaunchInfo *>(launch_info.m_opaque_sp.get()));
72}
73
75 if (error.m_opaque_up)
76 return error.m_opaque_up->Clone();
77
78 return Status();
79}
80
83 if (thread.m_opaque_sp)
84 return thread.m_opaque_sp->GetThreadSP();
85 return nullptr;
86}
87
90 if (frame.m_opaque_sp)
91 return frame.m_opaque_sp->GetFrameSP();
92 return nullptr;
93}
94
96 return event.m_opaque_ptr;
97}
98
101 if (stream.m_opaque_up) {
102 lldb::StreamSP s = std::make_shared<lldb_private::StreamString>();
103 *s << reinterpret_cast<StreamString *>(stream.m_opaque_up.get())->m_packet;
104 return s;
105 }
106
107 return nullptr;
108}
109
111 const lldb::SBSymbolContext &sb_sym_ctx) {
112 if (sb_sym_ctx.m_opaque_up)
113 return *sb_sym_ctx.m_opaque_up;
114 return {};
115}
116
117std::optional<lldb_private::MemoryRegionInfo>
119 const lldb::SBMemoryRegionInfo &mem_region) {
120 if (!mem_region.m_opaque_up)
121 return std::nullopt;
122 return *mem_region.m_opaque_up.get();
123}
124
129
134
137 return target.m_opaque_sp;
138}
139
142 if (!value.m_opaque_sp)
143 return lldb::ValueObjectSP();
144
146 return locker.GetLockedSP(*value.m_opaque_sp);
147}
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:248
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
ValueImplSP m_opaque_sp
Definition SBValue.h:539
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 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::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