SBFunction.h revision 89f1aa732c8b1df90cbbfe116b6f06cf80a25ae3
1//===-- SBFunction.h --------------------------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLDB_SBFunction_h_
11#define LLDB_SBFunction_h_
12
13#include "lldb/API/SBDefines.h"
14#include "lldb/API/SBAddress.h"
15#include "lldb/API/SBInstructionList.h"
16
17namespace lldb {
18
19class SBFunction
20{
21public:
22
23    SBFunction ();
24
25    SBFunction (const lldb::SBFunction &rhs);
26
27#ifndef SWIG
28    const lldb::SBFunction &
29    operator = (const lldb::SBFunction &rhs);
30#endif
31
32
33    ~SBFunction ();
34
35    bool
36    IsValid () const;
37
38    const char *
39    GetName() const;
40
41    const char *
42    GetMangledName () const;
43
44    lldb::SBInstructionList
45    GetInstructions (lldb::SBTarget target);
46
47    SBAddress
48    GetStartAddress ();
49
50    SBAddress
51    GetEndAddress ();
52
53    uint32_t
54    GetPrologueByteSize ();
55
56#ifndef SWIG
57    bool
58    operator == (const lldb::SBFunction &rhs) const;
59
60    bool
61    operator != (const lldb::SBFunction &rhs) const;
62#endif
63
64    bool
65    GetDescription (lldb::SBStream &description);
66
67protected:
68
69#ifndef SWIG
70
71    lldb_private::Function *
72    get ();
73
74    void
75    reset (lldb_private::Function *lldb_object_ptr);
76
77#endif
78
79private:
80    friend class SBFrame;
81    friend class SBSymbolContext;
82
83    SBFunction (lldb_private::Function *lldb_object_ptr);
84
85
86    lldb_private::Function *m_opaque_ptr;
87};
88
89
90} // namespace lldb
91
92#endif // LLDB_SBFunction_h_
93