SBSymbol.h revision b0e68d996b28cf81a28aeceefd69f7ed8d4aba99
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
18namespace lldb {
19
20class SBSymbol
21{
22public:
23
24    SBSymbol ();
25
26    ~SBSymbol ();
27
28    SBSymbol (const lldb::SBSymbol &rhs);
29
30#ifndef SWIG
31    const lldb::SBSymbol &
32    operator = (const lldb::SBSymbol &rhs);
33#endif
34
35    bool
36    IsValid () const;
37
38
39    const char *
40    GetName() const;
41
42    const char *
43    GetMangledName () const;
44
45    lldb::SBInstructionList
46    GetInstructions (lldb::SBTarget target);
47
48    SBAddress
49    GetStartAddress ();
50
51    SBAddress
52    GetEndAddress ();
53
54    uint32_t
55    GetPrologueByteSize ();
56
57    SymbolType
58    GetType ();
59
60#ifndef SWIG
61    bool
62    operator == (const lldb::SBSymbol &rhs) const;
63
64    bool
65    operator != (const lldb::SBSymbol &rhs) const;
66#endif
67
68    bool
69    GetDescription (lldb::SBStream &description);
70
71protected:
72
73#ifndef SWIG
74    lldb_private::Symbol *
75    get ();
76
77    void
78    reset (lldb_private::Symbol *);
79#endif
80
81private:
82    friend class SBFrame;
83    friend class SBModule;
84    friend class SBSymbolContext;
85
86    SBSymbol (lldb_private::Symbol *lldb_object_ptr);
87
88    void
89    SetSymbol (lldb_private::Symbol *lldb_object_ptr);
90
91    lldb_private::Symbol *m_opaque_ptr;
92};
93
94
95} // namespace lldb
96
97#endif // LLDB_SBSymbol_h_
98