Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:42:42

0001 //===-- SBSymbolContext.h ---------------------------------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
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 } // namespace lldb_private
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 } // namespace lldb
0088 
0089 #endif // LLDB_API_SBSYMBOLCONTEXT_H