LLDB API Documentation

SBSymbol.h
Go to the documentation of this file.
1 //===-- SBSymbol.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_SBSymbol_h_
11 #define LLDB_SBSymbol_h_
12 
13 #include "lldb/API/SBDefines.h"
14 #include "lldb/API/SBAddress.h"
16 #include "lldb/API/SBTarget.h"
17 
18 namespace lldb {
19 
20 class SBSymbol
21 {
22 public:
23 
24  SBSymbol ();
25 
26  ~SBSymbol ();
27 
28  SBSymbol (const lldb::SBSymbol &rhs);
29 
30  const lldb::SBSymbol &
31  operator = (const lldb::SBSymbol &rhs);
32 
33  bool
34  IsValid () const;
35 
36 
37  const char *
38  GetName() const;
39 
40  const char *
41  GetMangledName () const;
42 
45 
47  GetInstructions (lldb::SBTarget target, const char *flavor_string);
48 
49  SBAddress
50  GetStartAddress ();
51 
52  SBAddress
53  GetEndAddress ();
54 
55  uint32_t
57 
58  SymbolType
59  GetType ();
60 
61  bool
62  operator == (const lldb::SBSymbol &rhs) const;
63 
64  bool
65  operator != (const lldb::SBSymbol &rhs) const;
66 
67  bool
68  GetDescription (lldb::SBStream &description);
69 
70  //----------------------------------------------------------------------
71  // Returns true if the symbol is externally visible in the module that
72  // it is defined in
73  //----------------------------------------------------------------------
74  bool
75  IsExternal();
76 
77  //----------------------------------------------------------------------
78  // Returns true if the symbol was synthetically generated from something
79  // other than the actual symbol table itself in the object file.
80  //----------------------------------------------------------------------
81  bool
82  IsSynthetic();
83 
84 protected:
85 
86  lldb_private::Symbol *
87  get ();
88 
89  void
90  reset (lldb_private::Symbol *);
91 
92 private:
93  friend class SBAddress;
94  friend class SBFrame;
95  friend class SBModule;
96  friend class SBSymbolContext;
97 
98  SBSymbol (lldb_private::Symbol *lldb_object_ptr);
99 
100  void
101  SetSymbol (lldb_private::Symbol *lldb_object_ptr);
102 
103  lldb_private::Symbol *m_opaque_ptr;
104 };
105 
106 
107 } // namespace lldb
108 
109 #endif // LLDB_SBSymbol_h_