File indexing completed on 2026-05-10 08:42:42
0001
0002
0003
0004
0005
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 }
0086
0087 #endif