LLDB API Documentation

- Main Page
- Namespaces
- Classes
- Files

- File List

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"
15 #include "lldb/API/SBInstructionList.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
43 lldb::SBInstructionList
44 GetInstructions (lldb::SBTarget target);
45
46 lldb::SBInstructionList
47 GetInstructions (lldb::SBTarget target, const char *flavor_string);
48
49 SBAddress
50 GetStartAddress ();
51
52 SBAddress
53 GetEndAddress ();
54
55 uint32_t
56 GetPrologueByteSize ();
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_