LLDB API Documentation

SBBlock.h
Go to the documentation of this file.
1 //===-- SBBlock.h -----------------------------------------------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef LLDB_SBBlock_h_
11 #define LLDB_SBBlock_h_
12 
13 #include "lldb/API/SBDefines.h"
14 #include "lldb/API/SBFrame.h"
15 #include "lldb/API/SBTarget.h"
16 #include "lldb/API/SBValueList.h"
17 
18 namespace lldb {
19 
20 class SBBlock
21 {
22 public:
23 
24  SBBlock ();
25 
26  SBBlock (const lldb::SBBlock &rhs);
27 
28  ~SBBlock ();
29 
30  const lldb::SBBlock &
31  operator = (const lldb::SBBlock &rhs);
32 
33  bool
34  IsInlined () const;
35 
36  bool
37  IsValid () const;
38 
39  const char *
40  GetInlinedName () const;
41 
43  GetInlinedCallSiteFile () const;
44 
45  uint32_t
46  GetInlinedCallSiteLine () const;
47 
48  uint32_t
49  GetInlinedCallSiteColumn () const;
50 
52  GetParent ();
53 
55  GetSibling ();
56 
58  GetFirstChild ();
59 
60  uint32_t
61  GetNumRanges ();
62 
64  GetRangeStartAddress (uint32_t idx);
65 
67  GetRangeEndAddress (uint32_t idx);
68 
69  uint32_t
71 
74  bool arguments,
75  bool locals,
76  bool statics,
77  lldb::DynamicValueType use_dynamic);
78 
81  bool arguments,
82  bool locals,
83  bool statics);
84  //------------------------------------------------------------------
85  /// Get the inlined block that contains this block.
86  ///
87  /// @return
88  /// If this block is inlined, it will return this block, else
89  /// parent blocks will be searched to see if any contain this
90  /// block and are themselves inlined. An invalid SBBlock will
91  /// be returned if this block nor any parent blocks are inlined
92  /// function blocks.
93  //------------------------------------------------------------------
96 
97  bool
98  GetDescription (lldb::SBStream &description);
99 
100 private:
101  friend class SBAddress;
102  friend class SBFrame;
103  friend class SBFunction;
104  friend class SBSymbolContext;
105 
106  lldb_private::Block *
107  GetPtr ();
108 
109  void
110  SetPtr (lldb_private::Block *lldb_object_ptr);
111 
112  SBBlock (lldb_private::Block *lldb_object_ptr);
113 
114  void
115  AppendVariables (bool can_create, bool get_parent_variables, lldb_private::VariableList *var_list);
116 
117  lldb_private::Block *m_opaque_ptr;
118 };
119 
120 
121 } // namespace lldb
122 
123 #endif // LLDB_SBBlock_h_