Back to home page

EIC code displayed by LXR

 
 

    


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

0001 //===-- SBFunction.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_SBFUNCTION_H
0010 #define LLDB_API_SBFUNCTION_H
0011 
0012 #include "lldb/API/SBAddress.h"
0013 #include "lldb/API/SBAddressRangeList.h"
0014 #include "lldb/API/SBDefines.h"
0015 #include "lldb/API/SBInstructionList.h"
0016 
0017 namespace lldb {
0018 
0019 class LLDB_API SBFunction {
0020 public:
0021   SBFunction();
0022 
0023   SBFunction(const lldb::SBFunction &rhs);
0024 
0025   const lldb::SBFunction &operator=(const lldb::SBFunction &rhs);
0026 
0027   ~SBFunction();
0028 
0029   explicit operator bool() const;
0030 
0031   bool IsValid() const;
0032 
0033   const char *GetName() const;
0034 
0035   const char *GetDisplayName() const;
0036 
0037   const char *GetMangledName() const;
0038 
0039   lldb::SBInstructionList GetInstructions(lldb::SBTarget target);
0040 
0041   lldb::SBInstructionList GetInstructions(lldb::SBTarget target,
0042                                           const char *flavor);
0043 
0044   lldb::SBAddress GetStartAddress();
0045 
0046   LLDB_DEPRECATED_FIXME("Not compatible with discontinuous functions.",
0047                         "GetRanges()")
0048   lldb::SBAddress GetEndAddress();
0049 
0050   lldb::SBAddressRangeList GetRanges();
0051 
0052   const char *GetArgumentName(uint32_t arg_idx);
0053 
0054   uint32_t GetPrologueByteSize();
0055 
0056   lldb::SBType GetType();
0057 
0058   lldb::SBBlock GetBlock();
0059 
0060   lldb::LanguageType GetLanguage();
0061 
0062   bool GetIsOptimized();
0063 
0064   bool operator==(const lldb::SBFunction &rhs) const;
0065 
0066   bool operator!=(const lldb::SBFunction &rhs) const;
0067 
0068   bool GetDescription(lldb::SBStream &description);
0069 
0070 protected:
0071   lldb_private::Function *get();
0072 
0073   void reset(lldb_private::Function *lldb_object_ptr);
0074 
0075 private:
0076   friend class SBAddress;
0077   friend class SBFrame;
0078   friend class SBSymbolContext;
0079 
0080   SBFunction(lldb_private::Function *lldb_object_ptr);
0081 
0082   lldb_private::Function *m_opaque_ptr = nullptr;
0083 };
0084 
0085 } // namespace lldb
0086 
0087 #endif // LLDB_API_SBFUNCTION_H