File indexing completed on 2026-05-10 08:42:41
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef LLDB_API_SBBLOCK_H
0010 #define LLDB_API_SBBLOCK_H
0011
0012 #include "lldb/API/SBAddressRange.h"
0013 #include "lldb/API/SBAddressRangeList.h"
0014 #include "lldb/API/SBDefines.h"
0015 #include "lldb/API/SBFrame.h"
0016 #include "lldb/API/SBTarget.h"
0017 #include "lldb/API/SBValueList.h"
0018
0019 namespace lldb {
0020
0021 class LLDB_API SBBlock {
0022 public:
0023 SBBlock();
0024
0025 SBBlock(const lldb::SBBlock &rhs);
0026
0027 ~SBBlock();
0028
0029 const lldb::SBBlock &operator=(const lldb::SBBlock &rhs);
0030
0031 bool IsInlined() const;
0032
0033 explicit operator bool() const;
0034
0035 bool IsValid() const;
0036
0037 const char *GetInlinedName() const;
0038
0039 lldb::SBFileSpec GetInlinedCallSiteFile() const;
0040
0041 uint32_t GetInlinedCallSiteLine() const;
0042
0043 uint32_t GetInlinedCallSiteColumn() const;
0044
0045 lldb::SBBlock GetParent();
0046
0047 lldb::SBBlock GetSibling();
0048
0049 lldb::SBBlock GetFirstChild();
0050
0051 uint32_t GetNumRanges();
0052
0053 lldb::SBAddress GetRangeStartAddress(uint32_t idx);
0054
0055 lldb::SBAddress GetRangeEndAddress(uint32_t idx);
0056
0057 lldb::SBAddressRangeList GetRanges();
0058
0059 uint32_t GetRangeIndexForBlockAddress(lldb::SBAddress block_addr);
0060
0061 lldb::SBValueList GetVariables(lldb::SBFrame &frame, bool arguments,
0062 bool locals, bool statics,
0063 lldb::DynamicValueType use_dynamic);
0064
0065 lldb::SBValueList GetVariables(lldb::SBTarget &target, bool arguments,
0066 bool locals, bool statics);
0067
0068
0069
0070
0071
0072
0073
0074
0075 lldb::SBBlock GetContainingInlinedBlock();
0076
0077 bool GetDescription(lldb::SBStream &description);
0078
0079 private:
0080 friend class SBAddress;
0081 friend class SBFrame;
0082 friend class SBFunction;
0083 friend class SBSymbolContext;
0084
0085 lldb_private::Block *GetPtr();
0086
0087 void SetPtr(lldb_private::Block *lldb_object_ptr);
0088
0089 SBBlock(lldb_private::Block *lldb_object_ptr);
0090
0091 void AppendVariables(bool can_create, bool get_parent_variables,
0092 lldb_private::VariableList *var_list);
0093
0094 lldb_private::Block *m_opaque_ptr = nullptr;
0095 };
0096
0097 }
0098
0099 #endif