16d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen//===-- SWIG Interface for SBSymbol -----------------------------*- C++ -*-===//
26d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen//
36d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen//                     The LLVM Compiler Infrastructure
46d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen//
56d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen// This file is distributed under the University of Illinois Open Source
66d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen// License. See LICENSE.TXT for details.
76d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen//
86d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen//===----------------------------------------------------------------------===//
96d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
106d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chennamespace lldb {
116d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
126d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen%feature("docstring",
136d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen"Represents the symbol possibly associated with a stack frame.
146d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny ChenSBModule contains SBSymbol(s). SBSymbol can also be retrived from SBFrame.
156d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
166d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny ChenSee also SBModule and SBFrame."
176d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen) SBSymbol;
186d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chenclass SBSymbol
196d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen{
206d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chenpublic:
216d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
226d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    SBSymbol ();
236d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
246d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    ~SBSymbol ();
256d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
266d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    SBSymbol (const lldb::SBSymbol &rhs);
276d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
286d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    bool
296d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    IsValid () const;
306d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
316d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
326d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    const char *
336d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    GetName() const;
346d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
356d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    const char *
366d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    GetMangledName () const;
376d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
386d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    lldb::SBInstructionList
396d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    GetInstructions (lldb::SBTarget target);
406d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
417d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham    lldb::SBInstructionList
427d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham    GetInstructions (lldb::SBTarget target, const char *flavor_string);
437d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham
446d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    SBAddress
456d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    GetStartAddress ();
466d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
476d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    SBAddress
486d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    GetEndAddress ();
496d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
506d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    uint32_t
516d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    GetPrologueByteSize ();
526d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
536d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    SymbolType
546d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    GetType ();
556d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
566d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    bool
576d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen    GetDescription (lldb::SBStream &description);
583be42fb4ff54e71afe0b9aac83b7fa3068a3d873Greg Clayton
593be42fb4ff54e71afe0b9aac83b7fa3068a3d873Greg Clayton    bool
603be42fb4ff54e71afe0b9aac83b7fa3068a3d873Greg Clayton    IsExternal();
613be42fb4ff54e71afe0b9aac83b7fa3068a3d873Greg Clayton
623be42fb4ff54e71afe0b9aac83b7fa3068a3d873Greg Clayton    bool
633be42fb4ff54e71afe0b9aac83b7fa3068a3d873Greg Clayton    IsSynthetic();
643be42fb4ff54e71afe0b9aac83b7fa3068a3d873Greg Clayton
650765e3274aab0551fea7678bee565c7d68e0b786Enrico Granata    bool
660765e3274aab0551fea7678bee565c7d68e0b786Enrico Granata    operator == (const lldb::SBSymbol &rhs) const;
670765e3274aab0551fea7678bee565c7d68e0b786Enrico Granata
680765e3274aab0551fea7678bee565c7d68e0b786Enrico Granata    bool
690765e3274aab0551fea7678bee565c7d68e0b786Enrico Granata    operator != (const lldb::SBSymbol &rhs) const;
700765e3274aab0551fea7678bee565c7d68e0b786Enrico Granata
71b302dffacdadeef509d28133a4c66299418122f8Greg Clayton    %pythoncode %{
72b302dffacdadeef509d28133a4c66299418122f8Greg Clayton        def get_instructions_from_current_target (self):
73b302dffacdadeef509d28133a4c66299418122f8Greg Clayton            return self.GetInstructions (target)
74b302dffacdadeef509d28133a4c66299418122f8Greg Clayton
75b302dffacdadeef509d28133a4c66299418122f8Greg Clayton        __swig_getmethods__["name"] = GetName
762a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: name = property(GetName, None, doc='''A read only property that returns the name for this symbol as a string.''')
77b302dffacdadeef509d28133a4c66299418122f8Greg Clayton
78b302dffacdadeef509d28133a4c66299418122f8Greg Clayton        __swig_getmethods__["mangled"] = GetMangledName
792a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: mangled = property(GetMangledName, None, doc='''A read only property that returns the mangled (linkage) name for this symbol as a string.''')
80b302dffacdadeef509d28133a4c66299418122f8Greg Clayton
81b302dffacdadeef509d28133a4c66299418122f8Greg Clayton        __swig_getmethods__["type"] = GetType
822a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: 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.''')
83b302dffacdadeef509d28133a4c66299418122f8Greg Clayton
84b302dffacdadeef509d28133a4c66299418122f8Greg Clayton        __swig_getmethods__["addr"] = GetStartAddress
852a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: addr = property(GetStartAddress, None, doc='''A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this symbol.''')
86b302dffacdadeef509d28133a4c66299418122f8Greg Clayton
87b302dffacdadeef509d28133a4c66299418122f8Greg Clayton        __swig_getmethods__["end_addr"] = GetEndAddress
882a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: 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.''')
89b302dffacdadeef509d28133a4c66299418122f8Greg Clayton
90b302dffacdadeef509d28133a4c66299418122f8Greg Clayton        __swig_getmethods__["prologue_size"] = GetPrologueByteSize
912a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: prologue_size = property(GetPrologueByteSize, None, doc='''A read only property that returns the size in bytes of the prologue instructions as an unsigned integer.''')
92b302dffacdadeef509d28133a4c66299418122f8Greg Clayton
93b302dffacdadeef509d28133a4c66299418122f8Greg Clayton        __swig_getmethods__["instructions"] = get_instructions_from_current_target
942a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: 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.''')
953be42fb4ff54e71afe0b9aac83b7fa3068a3d873Greg Clayton
963be42fb4ff54e71afe0b9aac83b7fa3068a3d873Greg Clayton        __swig_getmethods__["external"] = IsExternal
972a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: 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.''')
983be42fb4ff54e71afe0b9aac83b7fa3068a3d873Greg Clayton
993be42fb4ff54e71afe0b9aac83b7fa3068a3d873Greg Clayton        __swig_getmethods__["synthetic"] = IsSynthetic
1002a94be1aa46c90d6749d8c96ed396d5ebde452cdGreg Clayton        if _newclass: 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.''')
1013be42fb4ff54e71afe0b9aac83b7fa3068a3d873Greg Clayton
102b302dffacdadeef509d28133a4c66299418122f8Greg Clayton
103b302dffacdadeef509d28133a4c66299418122f8Greg Clayton    %}
104b302dffacdadeef509d28133a4c66299418122f8Greg Clayton
1056d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen};
1066d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen
1076d91e0a095183e02a84b2833c5cbe46e7963e8baJohnny Chen} // namespace lldb
108