1 //===-- SBFunction.h --------------------------------------------*- C++ -*-===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #ifndef LLDB_SBFunction_h_
10 #define LLDB_SBFunction_h_
12 #include "lldb/API/SBAddress.h"
13 #include "lldb/API/SBDefines.h"
14 #include "lldb/API/SBInstructionList.h"
18 class LLDB_API SBFunction {
22 SBFunction(const lldb::SBFunction &rhs);
24 const lldb::SBFunction &operator=(const lldb::SBFunction &rhs);
28 explicit operator bool() const;
32 const char *GetName() const;
34 const char *GetDisplayName() const;
36 const char *GetMangledName() const;
38 lldb::SBInstructionList GetInstructions(lldb::SBTarget target);
40 lldb::SBInstructionList GetInstructions(lldb::SBTarget target,
43 lldb::SBAddress GetStartAddress();
45 lldb::SBAddress GetEndAddress();
47 const char *GetArgumentName(uint32_t arg_idx);
49 uint32_t GetPrologueByteSize();
51 lldb::SBType GetType();
53 lldb::SBBlock GetBlock();
55 lldb::LanguageType GetLanguage();
57 bool GetIsOptimized();
59 bool operator==(const lldb::SBFunction &rhs) const;
61 bool operator!=(const lldb::SBFunction &rhs) const;
63 bool GetDescription(lldb::SBStream &description);
66 lldb_private::Function *get();
68 void reset(lldb_private::Function *lldb_object_ptr);
71 friend class SBAddress;
73 friend class SBSymbolContext;
75 SBFunction(lldb_private::Function *lldb_object_ptr);
77 lldb_private::Function *m_opaque_ptr;
82 #endif // LLDB_SBFunction_h_