]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBSymbol.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / llvm / tools / lldb / include / lldb / API / SBSymbol.h
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_