]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/lldb/bindings/interface/SBSymbol.i
Merge once more from ^/vendor/llvm-project/release-10.x, to get the
[FreeBSD/FreeBSD.git] / contrib / llvm-project / lldb / bindings / interface / SBSymbol.i
1 //===-- SWIG Interface for SBSymbol -----------------------------*- 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 namespace lldb {
10
11 %feature("docstring",
12 "Represents the symbol possibly associated with a stack frame.
13 SBModule contains SBSymbol(s). SBSymbol can also be retrieved from SBFrame.
14
15 See also SBModule and SBFrame."
16 ) SBSymbol;
17 class SBSymbol
18 {
19 public:
20
21     SBSymbol ();
22
23     ~SBSymbol ();
24
25     SBSymbol (const lldb::SBSymbol &rhs);
26
27     bool
28     IsValid () const;
29
30     explicit operator bool() const;
31
32
33     const char *
34     GetName() const;
35
36     const char *
37     GetDisplayName() const;
38
39     const char *
40     GetMangledName () const;
41
42     lldb::SBInstructionList
43     GetInstructions (lldb::SBTarget target);
44
45     lldb::SBInstructionList
46     GetInstructions (lldb::SBTarget target, const char *flavor_string);
47
48     SBAddress
49     GetStartAddress ();
50
51     SBAddress
52     GetEndAddress ();
53
54     uint32_t
55     GetPrologueByteSize ();
56
57     SymbolType
58     GetType ();
59
60     bool
61     GetDescription (lldb::SBStream &description);
62
63     bool
64     IsExternal();
65
66     bool
67     IsSynthetic();
68
69     bool
70     operator == (const lldb::SBSymbol &rhs) const;
71
72     bool
73     operator != (const lldb::SBSymbol &rhs) const;
74
75     STRING_EXTENSION(SBSymbol)
76
77 #ifdef SWIGPYTHON
78     %pythoncode %{
79         def get_instructions_from_current_target (self):
80             return self.GetInstructions (target)
81
82         name = property(GetName, None, doc='''A read only property that returns the name for this symbol as a string.''')
83         mangled = property(GetMangledName, None, doc='''A read only property that returns the mangled (linkage) name for this symbol as a string.''')
84         type = property(GetType, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eSymbolType") that represents the type of this symbol.''')
85         addr = property(GetStartAddress, None, doc='''A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this symbol.''')
86         end_addr = property(GetEndAddress, None, doc='''A read only property that returns an lldb object that represents the end address (lldb.SBAddress) for this symbol.''')
87         prologue_size = property(GetPrologueByteSize, None, doc='''A read only property that returns the size in bytes of the prologue instructions as an unsigned integer.''')
88         instructions = property(get_instructions_from_current_target, None, doc='''A read only property that returns an lldb object that represents the instructions (lldb.SBInstructionList) for this symbol.''')
89         external = property(IsExternal, None, doc='''A read only property that returns a boolean value that indicates if this symbol is externally visiable (exported) from the module that contains it.''')
90         synthetic = property(IsSynthetic, None, doc='''A read only property that returns a boolean value that indicates if this symbol was synthetically created from information in module that contains it.''')
91     %}
92 #endif
93
94 };
95
96 } // namespace lldb