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/SBDefines.h
"
13
#include "
lldb/API/SBFrame.h
"
14
#include "
lldb/API/SBTarget.h
"
15
#include "
lldb/API/SBValueList.h
"
16
17
namespace
lldb
{
18
19
class
LLDB_API
SBBlock
{
20
public
:
21
SBBlock
();
22
23
SBBlock
(
const
lldb::SBBlock
&rhs);
24
25
~SBBlock
();
26
27
const
lldb::SBBlock
&operator=(
const
lldb::SBBlock
&rhs);
28
29
bool
IsInlined()
const
;
30
31
explicit
operator
bool()
const
;
32
33
bool
IsValid()
const
;
34
35
const
char
*GetInlinedName()
const
;
36
37
lldb::SBFileSpec
GetInlinedCallSiteFile()
const
;
38
39
uint32_t
GetInlinedCallSiteLine()
const
;
40
41
uint32_t
GetInlinedCallSiteColumn()
const
;
42
43
lldb::SBBlock
GetParent();
44
45
lldb::SBBlock
GetSibling();
46
47
lldb::SBBlock
GetFirstChild();
48
49
uint32_t
GetNumRanges();
50
51
lldb::SBAddress
GetRangeStartAddress(
uint32_t
idx);
52
53
lldb::SBAddress
GetRangeEndAddress(
uint32_t
idx);
54
55
uint32_t
GetRangeIndexForBlockAddress(
lldb::SBAddress
block_addr);
56
57
lldb::SBValueList
GetVariables(
lldb::SBFrame
&frame,
bool
arguments,
58
bool
locals,
bool
statics,
59
lldb::DynamicValueType
use_dynamic);
60
61
lldb::SBValueList
GetVariables(
lldb::SBTarget
&target,
bool
arguments,
62
bool
locals,
bool
statics);
63
/// Get the inlined block that contains this block.
64
///
65
/// \return
66
/// If this block is inlined, it will return this block, else
67
/// parent blocks will be searched to see if any contain this
68
/// block and are themselves inlined. An invalid SBBlock will
69
/// be returned if this block nor any parent blocks are inlined
70
/// function blocks.
71
lldb::SBBlock
GetContainingInlinedBlock();
72
73
bool
GetDescription(
lldb::SBStream
&description);
74
75
private
:
76
friend
class
SBAddress
;
77
friend
class
SBFrame
;
78
friend
class
SBFunction
;
79
friend
class
SBSymbolContext
;
80
81
lldb_private::Block
*GetPtr();
82
83
void
SetPtr(
lldb_private::Block
*lldb_object_ptr);
84
85
SBBlock
(
lldb_private::Block
*lldb_object_ptr);
86
87
void
AppendVariables(
bool
can_create,
bool
get_parent_variables,
88
lldb_private::VariableList
*var_list);
89
90
lldb_private::Block
*m_opaque_ptr =
nullptr
;
91
};
92
93
}
// namespace lldb
94
95
#endif
// LLDB_API_SBBLOCK_H
SBDefines.h
LLDB_API
#define LLDB_API
Definition:
SBDefines.h:26
SBFrame.h
SBTarget.h
SBValueList.h
lldb::SBAddress
Definition:
SBAddress.h:17
lldb::SBBlock
Definition:
SBBlock.h:19
lldb::SBFileSpec
Definition:
SBFileSpec.h:16
lldb::SBFrame
Definition:
SBFrame.h:17
lldb::SBFunction
Definition:
SBFunction.h:18
lldb::SBStream
Definition:
SBStream.h:18
lldb::SBSymbolContext
Definition:
SBSymbolContext.h:22
lldb::SBTarget
Definition:
SBTarget.h:29
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
uint32_t
lldb
Definition:
SBAddress.h:15
lldb::DynamicValueType
DynamicValueType
Definition:
lldb-enumerations.h:500
Generated on Mon Mar 27 2023 19:36:39 for LLDB by
1.9.6