File indexing completed on 2026-05-10 08:42:42
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef LLDB_API_SBSYMBOLCONTEXT_H
0010 #define LLDB_API_SBSYMBOLCONTEXT_H
0011
0012 #include "lldb/API/SBBlock.h"
0013 #include "lldb/API/SBCompileUnit.h"
0014 #include "lldb/API/SBDefines.h"
0015 #include "lldb/API/SBFunction.h"
0016 #include "lldb/API/SBLineEntry.h"
0017 #include "lldb/API/SBModule.h"
0018 #include "lldb/API/SBSymbol.h"
0019
0020 namespace lldb_private {
0021 namespace python {
0022 class SWIGBridge;
0023 }
0024 }
0025
0026 namespace lldb {
0027
0028 class LLDB_API SBSymbolContext {
0029 public:
0030 SBSymbolContext();
0031
0032 SBSymbolContext(const lldb::SBSymbolContext &rhs);
0033
0034 ~SBSymbolContext();
0035
0036 explicit operator bool() const;
0037
0038 bool IsValid() const;
0039
0040 const lldb::SBSymbolContext &operator=(const lldb::SBSymbolContext &rhs);
0041
0042 lldb::SBModule GetModule();
0043 lldb::SBCompileUnit GetCompileUnit();
0044 lldb::SBFunction GetFunction();
0045 lldb::SBBlock GetBlock();
0046 lldb::SBLineEntry GetLineEntry();
0047 lldb::SBSymbol GetSymbol();
0048
0049 void SetModule(lldb::SBModule module);
0050 void SetCompileUnit(lldb::SBCompileUnit compile_unit);
0051 void SetFunction(lldb::SBFunction function);
0052 void SetBlock(lldb::SBBlock block);
0053 void SetLineEntry(lldb::SBLineEntry line_entry);
0054 void SetSymbol(lldb::SBSymbol symbol);
0055
0056 SBSymbolContext GetParentOfInlinedScope(const SBAddress &curr_frame_pc,
0057 SBAddress &parent_frame_addr) const;
0058
0059 bool GetDescription(lldb::SBStream &description);
0060
0061 protected:
0062 friend class SBAddress;
0063 friend class SBFrame;
0064 friend class SBModule;
0065 friend class SBThread;
0066 friend class SBTarget;
0067 friend class SBSymbolContextList;
0068
0069 friend class lldb_private::python::SWIGBridge;
0070
0071 SBSymbolContext(const lldb_private::SymbolContext &sc_ptr);
0072
0073 lldb_private::SymbolContext *operator->() const;
0074
0075 lldb_private::SymbolContext &operator*();
0076
0077 lldb_private::SymbolContext &ref();
0078
0079 const lldb_private::SymbolContext &operator*() const;
0080
0081 lldb_private::SymbolContext *get() const;
0082
0083 private:
0084 std::unique_ptr<lldb_private::SymbolContext> m_opaque_up;
0085 };
0086
0087 }
0088
0089 #endif