1//===-- SBFunction.h --------------------------------------------*- C++ -*-===//
2//
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
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLDB_API_SBFUNCTION_H
10#define LLDB_API_SBFUNCTION_H
11
12#include "lldb/API/SBAddress.h"
13#include "lldb/API/SBDefines.h"
14#include "lldb/API/SBInstructionList.h"
15
16namespace lldb {
17
18class LLDB_API SBFunction {
19public:
20 SBFunction();
21
22 SBFunction(const lldb::SBFunction &rhs);
23
24 const lldb::SBFunction &operator=(const lldb::SBFunction &rhs);
25
26 ~SBFunction();
27
28 explicit operator bool() const;
29
30 bool IsValid() const;
31
32 const char *GetName() const;
33
34 const char *GetDisplayName() const;
35
36 const char *GetMangledName() const;
37
38 lldb::SBInstructionList GetInstructions(lldb::SBTarget target);
39
40 lldb::SBInstructionList GetInstructions(lldb::SBTarget target,
41 const char *flavor);
42
43 lldb::SBAddress GetStartAddress();
44
45 lldb::SBAddress GetEndAddress();
46
47 const char *GetArgumentName(uint32_t arg_idx);
48
49 uint32_t GetPrologueByteSize();
50
51 lldb::SBType GetType();
52
53 lldb::SBBlock GetBlock();
54
55 lldb::LanguageType GetLanguage();
56
57 bool GetIsOptimized();
58
59 bool operator==(const lldb::SBFunction &rhs) const;
60
61 bool operator!=(const lldb::SBFunction &rhs) const;
62
63 bool GetDescription(lldb::SBStream &description);
64
65protected:
66 lldb_private::Function *get();
67
68 void reset(lldb_private::Function *lldb_object_ptr);
69
70private:
71 friend class SBAddress;
72 friend class SBFrame;
73 friend class SBSymbolContext;
74
75 SBFunction(lldb_private::Function *lldb_object_ptr);
76
77 lldb_private::Function *m_opaque_ptr = nullptr;
78};
79
80} // namespace lldb
81
82#endif // LLDB_API_SBFUNCTION_H
83

source code of lldb/include/lldb/API/SBFunction.h