LLDB
mainline
llvm-project
lldb
include
lldb
API
SBBlock.h
Go to the documentation of this file.
1
//===-- SBBlock.h -----------------------------------------------*- C++ -*-===//
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
9
#ifndef LLDB_API_SBBLOCK_H
10
#define LLDB_API_SBBLOCK_H
11
12
#include "
lldb/API/SBAddressRange.h
"
13
#include "
lldb/API/SBAddressRangeList.h
"
14
#include "
lldb/API/SBDefines.h
"
15
#include "
lldb/API/SBFrame.h
"
16
#include "
lldb/API/SBTarget.h
"
17
#include "
lldb/API/SBValueList.h
"
18
19
namespace
lldb
{
20
21
class
LLDB_API
SBBlock
{
22
public
:
23
SBBlock
();
24
25
SBBlock
(
const
lldb::SBBlock
&rhs);
26
27
~SBBlock
();
28
29
const
lldb::SBBlock
&
operator=
(
const
lldb::SBBlock
&rhs);
30
31
bool
IsInlined
()
const
;
32
33
explicit
operator
bool
()
const
;
34
35
bool
IsValid
()
const
;
36
37
const
char
*
GetInlinedName
()
const
;
38
39
lldb::SBFileSpec
GetInlinedCallSiteFile
()
const
;
40
41
uint32_t
GetInlinedCallSiteLine
()
const
;
42
43
uint32_t
GetInlinedCallSiteColumn
()
const
;
44
45
lldb::SBBlock
GetParent
();
46
47
lldb::SBBlock
GetSibling
();
48
49
lldb::SBBlock
GetFirstChild
();
50
51
uint32_t
GetNumRanges
();
52
53
lldb::SBAddress
GetRangeStartAddress
(uint32_t idx);
54
55
lldb::SBAddress
GetRangeEndAddress
(uint32_t idx);
56
57
lldb::SBAddressRangeList
GetRanges
();
58
59
uint32_t
GetRangeIndexForBlockAddress
(
lldb::SBAddress
block_addr);
60
61
lldb::SBValueList
GetVariables
(
lldb::SBFrame
&frame,
bool
arguments,
62
bool
locals,
bool
statics,
63
lldb::DynamicValueType
use_dynamic);
64
65
lldb::SBValueList
GetVariables
(
lldb::SBTarget
&target,
bool
arguments,
66
bool
locals,
bool
statics);
67
/// Get the inlined block that contains this block.
68
///
69
/// \return
70
/// If this block is inlined, it will return this block, else
71
/// parent blocks will be searched to see if any contain this
72
/// block and are themselves inlined. An invalid SBBlock will
73
/// be returned if this block nor any parent blocks are inlined
74
/// function blocks.
75
lldb::SBBlock
GetContainingInlinedBlock
();
76
77
bool
GetDescription
(
lldb::SBStream
&description);
78
79
private
:
80
friend
class
SBAddress
;
81
friend
class
SBFrame
;
82
friend
class
SBFunction
;
83
friend
class
SBSymbolContext
;
84
85
lldb_private::Block
*
GetPtr
();
86
87
void
SetPtr
(
lldb_private::Block
*lldb_object_ptr);
88
89
SBBlock
(
lldb_private::Block
*lldb_object_ptr);
90
91
void
AppendVariables
(
bool
can_create,
bool
get_parent_variables,
92
lldb_private::VariableList
*var_list);
93
94
lldb_private::Block
*
m_opaque_ptr
=
nullptr
;
95
};
96
97
}
// namespace lldb
98
99
#endif
// LLDB_API_SBBLOCK_H
GetRanges
static llvm::Expected< llvm::DWARFAddressRangesVector > GetRanges(DWARFUnit &unit, const DWARFFormValue &value)
Definition
DWARFDebugInfoEntry.cpp:86
SBAddressRangeList.h
SBAddressRange.h
SBDefines.h
LLDB_API
#define LLDB_API
Definition
SBDefines.h:28
SBFrame.h
SBTarget.h
SBValueList.h
bool
lldb::SBAddressRangeList
Definition
SBAddressRangeList.h:22
lldb::SBAddress
Definition
SBAddress.h:17
lldb::SBBlock
Definition
SBBlock.h:21
lldb::SBBlock::AppendVariables
void AppendVariables(bool can_create, bool get_parent_variables, lldb_private::VariableList *var_list)
Definition
SBBlock.cpp:115
lldb::SBBlock::GetRangeEndAddress
lldb::SBAddress GetRangeEndAddress(uint32_t idx)
Definition
SBBlock.cpp:208
lldb::SBBlock::GetNumRanges
uint32_t GetNumRanges()
Definition
SBBlock.cpp:187
lldb::SBBlock::GetInlinedName
const char * GetInlinedName() const
Definition
SBBlock.cpp:65
lldb::SBBlock::GetInlinedCallSiteLine
uint32_t GetInlinedCallSiteLine() const
Definition
SBBlock.cpp:91
lldb::SBBlock::SBSymbolContext
friend class SBSymbolContext
Definition
SBBlock.h:83
lldb::SBBlock::GetRangeStartAddress
lldb::SBAddress GetRangeStartAddress(uint32_t idx)
Definition
SBBlock.cpp:195
lldb::SBBlock::IsValid
bool IsValid() const
Definition
SBBlock.cpp:47
lldb::SBBlock::operator=
const lldb::SBBlock & operator=(const lldb::SBBlock &rhs)
Definition
SBBlock.cpp:38
lldb::SBBlock::SBAddress
friend class SBAddress
Definition
SBBlock.h:80
lldb::SBBlock::GetContainingInlinedBlock
lldb::SBBlock GetContainingInlinedBlock()
Get the inlined block that contains this block.
Definition
SBBlock.cpp:133
lldb::SBBlock::GetRangeIndexForBlockAddress
uint32_t GetRangeIndexForBlockAddress(lldb::SBAddress block_addr)
Definition
SBBlock.cpp:231
lldb::SBBlock::GetVariables
lldb::SBValueList GetVariables(lldb::SBFrame &frame, bool arguments, bool locals, bool statics, lldb::DynamicValueType use_dynamic)
Definition
SBBlock.cpp:241
lldb::SBBlock::SetPtr
void SetPtr(lldb_private::Block *lldb_object_ptr)
Definition
SBBlock.cpp:162
lldb::SBBlock::GetParent
lldb::SBBlock GetParent()
Definition
SBBlock.cpp:124
lldb::SBBlock::GetFirstChild
lldb::SBBlock GetFirstChild()
Definition
SBBlock.cpp:151
lldb::SBBlock::IsInlined
bool IsInlined() const
Definition
SBBlock.cpp:57
lldb::SBBlock::GetInlinedCallSiteColumn
uint32_t GetInlinedCallSiteColumn() const
Definition
SBBlock.cpp:103
lldb::SBBlock::SBFrame
friend class SBFrame
Definition
SBBlock.h:81
lldb::SBBlock::SBFunction
friend class SBFunction
Definition
SBBlock.h:82
lldb::SBBlock::GetSibling
lldb::SBBlock GetSibling()
Definition
SBBlock.cpp:142
lldb::SBBlock::GetInlinedCallSiteFile
lldb::SBFileSpec GetInlinedCallSiteFile() const
Definition
SBBlock.cpp:78
lldb::SBBlock::m_opaque_ptr
lldb_private::Block * m_opaque_ptr
Definition
SBBlock.h:94
lldb::SBBlock::GetPtr
lldb_private::Block * GetPtr()
Definition
SBBlock.cpp:160
lldb::SBBlock::SBBlock
SBBlock()
Definition
SBBlock.cpp:29
lldb::SBBlock::GetDescription
bool GetDescription(lldb::SBStream &description)
Definition
SBBlock.cpp:164
lldb::SBFileSpec
Definition
SBFileSpec.h:16
lldb::SBFrame
Definition
SBFrame.h:26
lldb::SBStream
Definition
SBStream.h:22
lldb::SBTarget
Definition
SBTarget.h:37
lldb::SBValueList
Definition
SBValueList.h:18
lldb_private::Block
A class that describes a single lexical block.
Definition
Block.h:41
lldb_private::VariableList
Definition
VariableList.h:18
lldb
Definition
SBAddress.h:15
lldb::DynamicValueType
DynamicValueType
Definition
lldb-enumerations.h:546
Generated on
for LLDB by
1.14.0