1 //===-- SBSymbol.h ----------------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLDB_SBSymbol_h_
11 #define LLDB_SBSymbol_h_
13 #include "lldb/API/SBAddress.h"
14 #include "lldb/API/SBDefines.h"
15 #include "lldb/API/SBInstructionList.h"
16 #include "lldb/API/SBTarget.h"
20 class LLDB_API SBSymbol {
26 SBSymbol(const lldb::SBSymbol &rhs);
28 const lldb::SBSymbol &operator=(const lldb::SBSymbol &rhs);
32 const char *GetName() const;
34 const char *GetDisplayName() const;
36 const char *GetMangledName() const;
38 lldb::SBInstructionList GetInstructions(lldb::SBTarget target);
40 lldb::SBInstructionList GetInstructions(lldb::SBTarget target,
41 const char *flavor_string);
43 SBAddress GetStartAddress();
45 SBAddress GetEndAddress();
47 uint32_t GetPrologueByteSize();
51 bool operator==(const lldb::SBSymbol &rhs) const;
53 bool operator!=(const lldb::SBSymbol &rhs) const;
55 bool GetDescription(lldb::SBStream &description);
57 //----------------------------------------------------------------------
58 // Returns true if the symbol is externally visible in the module that
60 //----------------------------------------------------------------------
63 //----------------------------------------------------------------------
64 // Returns true if the symbol was synthetically generated from something
65 // other than the actual symbol table itself in the object file.
66 //----------------------------------------------------------------------
70 lldb_private::Symbol *get();
72 void reset(lldb_private::Symbol *);
75 friend class SBAddress;
77 friend class SBModule;
78 friend class SBSymbolContext;
80 SBSymbol(lldb_private::Symbol *lldb_object_ptr);
82 void SetSymbol(lldb_private::Symbol *lldb_object_ptr);
84 lldb_private::Symbol *m_opaque_ptr;
89 #endif // LLDB_SBSymbol_h_