LLDB API Documentation

- Main Page
- Namespaces
- Classes
- Files

- File List

SBSymbolContext.h
Go to the documentation of this file.
1 //===-- SBSymbolContext.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_SBSymbolContext_h_
11 #define LLDB_SBSymbolContext_h_
12
13 #include "lldb/API/SBDefines.h"
14 #include "lldb/API/SBBlock.h"
15 #include "lldb/API/SBCompileUnit.h"
16 #include "lldb/API/SBFunction.h"
17 #include "lldb/API/SBLineEntry.h"
18 #include "lldb/API/SBModule.h"
19 #include "lldb/API/SBSymbol.h"
20
21 namespace lldb {
22
23 class SBSymbolContext
24 {
25 public:
26 SBSymbolContext ();
27
28 SBSymbolContext (const lldb::SBSymbolContext& rhs);
29
30 ~SBSymbolContext ();
31
32 bool
33 IsValid () const;
34
35 const lldb::SBSymbolContext &
36 operator = (const lldb::SBSymbolContext &rhs);
37
38 lldb::SBModule GetModule ();
39 lldb::SBCompileUnit GetCompileUnit ();
40 lldb::SBFunction GetFunction ();
41 lldb::SBBlock GetBlock ();
42 lldb::SBLineEntry GetLineEntry ();
43 lldb::SBSymbol GetSymbol ();
44
45 void SetModule (lldb::SBModule module);
46 void SetCompileUnit (lldb::SBCompileUnit compile_unit);
47 void SetFunction (lldb::SBFunction function);
48 void SetBlock (lldb::SBBlock block);
49 void SetLineEntry (lldb::SBLineEntry line_entry);
50 void SetSymbol (lldb::SBSymbol symbol);
51
52 SBSymbolContext
53 GetParentOfInlinedScope (const SBAddress &curr_frame_pc,
54 SBAddress &parent_frame_addr) const;
55
56 bool
57 GetDescription (lldb::SBStream &description);
58
59 protected:
60 friend class SBAddress;
61 friend class SBFrame;
62 friend class SBModule;
63 friend class SBThread;
64 friend class SBTarget;
65 friend class SBSymbolContextList;
66
67 lldb_private::SymbolContext*
68 operator->() const;
69
70 lldb_private::SymbolContext&
71 operator*();
72
73 lldb_private::SymbolContext&
74 ref();
75
76 const lldb_private::SymbolContext&
77 operator*() const;
78
79 lldb_private::SymbolContext *
80 get() const;
81
82 SBSymbolContext (const lldb_private::SymbolContext *sc_ptr);
83
84 void
85 SetSymbolContext (const lldb_private::SymbolContext *sc_ptr);
86
87 private:
88 std::unique_ptr<lldb_private::SymbolContext> m_opaque_ap;
89 };
90
91
92 } // namespace lldb
93
94 #endif // LLDB_SBSymbolContext_h_