Package lldb :: Class SBFunction |
[hide private]
[frames] | no frames]

# Class SBFunction

source code

    Represents a generic function, which can be inlined or not.

    For example (from test/lldbutil.py, but slightly modified for doc purpose),

            ...

            frame = thread.GetFrameAtIndex(i)
            addr = frame.GetPCAddress()
            load_addr = addr.GetLoadAddress(target)
            function = frame.GetFunction()
            mod_name = frame.GetModule().GetFileSpec().GetFilename()

            if not function:
                # No debug info for 'function'.
                symbol = frame.GetSymbol()
                file_addr = addr.GetFileAddress()
                start_addr = symbol.GetStartAddress().GetFileAddress()
                symbol_name = symbol.GetName()
                symbol_offset = file_addr - start_addr
                print >> output, '  frame #{num}: {addr:#016x} {mod}`{symbol} + {offset}'.format(
                    num=i, addr=load_addr, mod=mod_name, symbol=symbol_name, offset=symbol_offset)
            else:
                # Debug info is available for 'function'.
                func_name = frame.GetFunctionName()
                file_name = frame.GetLineEntry().GetFileSpec().GetFilename()
                line_num = frame.GetLineEntry().GetLine()
                print >> output, '  frame #{num}: {addr:#016x} {mod}`{func} at {file}:{line} {args}'.format(
                    num=i, addr=load_addr, mod=mod_name,
                    func='%s [inlined]' % func_name] if frame.IsInlined() else func_name,
                    file=file_name, line=line_num, args=get_args_as_string(frame, showFuncName=False))

            ...

Instance Methods | [hide private]
__setattr__(self, name, value) x.__setattr__('name', value) <==> x.name = value | source code
__getattr__(self, name) | source code
__repr__(self) repr(x) | source code
__init__(self, *args) __init__(lldb::SBFunction self) -> SBFunction __init__(lldb::SBFunction self, SBFunction rhs) -> SBFunction | source code
__swig_destroy__(...) delete_SBFunction(SBFunction self) |
__del__(self) | source code
__nonzero__(self) | source code
IsValid(self) IsValid(SBFunction self) -> bool | source code
GetName(self) GetName(SBFunction self) -> str const * | source code
GetDisplayName(self) GetDisplayName(SBFunction self) -> str const * | source code
GetMangledName(self) GetMangledName(SBFunction self) -> str const * | source code
GetInstructions(self, *args) GetInstructions(SBFunction self, SBTarget target) -> SBInstructionList GetInstructions(SBFunction self, SBTarget target, str const * flavor) -> SBInstructionList | source code
GetStartAddress(self) GetStartAddress(SBFunction self) -> SBAddress | source code
GetEndAddress(self) GetEndAddress(SBFunction self) -> SBAddress | source code
GetArgumentName(self, *args) GetArgumentName(SBFunction self, uint32_t arg_idx) -> str const * | source code
GetPrologueByteSize(self) GetPrologueByteSize(SBFunction self) -> uint32_t | source code
GetType(self) GetType(SBFunction self) -> SBType | source code
GetBlock(self) GetBlock(SBFunction self) -> SBBlock | source code
GetLanguage(self) GetLanguage(SBFunction self) -> lldb::LanguageType | source code
GetIsOptimized(self) GetIsOptimized(SBFunction self) -> bool | source code
GetDescription(self, *args) GetDescription(SBFunction self, SBStream description) -> bool | source code
get_instructions_from_current_target(self) | source code
__str__(self) __str__(SBFunction self) -> PyObject * | source code
__eq__(self, rhs) | source code
__ne__(self, rhs) | source code
Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__sizeof__`, `__subclasshook__`

Class Variables | [hide private]
| __swig_setmethods__ = ``{``}``
| __swig_getmethods__ = `{}`

Properties | [hide private]
| addr A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this function.
| block A read only property that returns an lldb object that represents the top level lexical block (lldb.SBBlock) for this function.
| end_addr A read only property that returns an lldb object that represents the end address (lldb.SBAddress) for this function.
| instructions A read only property that returns an lldb object that represents the instructions (lldb.SBInstructionList) for this function.
| mangled A read only property that returns the mangled (linkage) name for this function as a string.
| name A read only property that returns the name for this function as a string.
| prologue_size A read only property that returns the size in bytes of the prologue instructions as an unsigned integer.
| type A read only property that returns an lldb object that represents the return type (lldb.SBType) for this function.
Inherited from `object`: `__class__`

Method Details | [hide private]

### __setattr__(self, name, value) | source code
x.__setattr__('name', value) <==> x.name = value Overrides: object.__setattr__ (inherited documentation)

### __repr__(self) (Representation operator) | source code
repr(x) Overrides: object.__repr__ (inherited documentation)

### __init__(self, *args) (Constructor) | source code
__init__(lldb::SBFunction self) -> SBFunction __init__(lldb::SBFunction self, SBFunction rhs) -> SBFunction Overrides: object.__init__

### GetIsOptimized(self) | source code
GetIsOptimized(SBFunction self) -> bool Returns true if the function was compiled with optimization. Optimization, in this case, is meant to indicate that the debugger experience may be confusing for the user -- variables optimized away, stepping jumping between source lines -- and the driver may want to provide some guidance to the user about this. Returns false if unoptimized, or unknown.

### __str__(self) (Informal representation operator) | source code
__str__(SBFunction self) -> PyObject * Overrides: object.__str__

Property Details | [hide private]

### addr A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this function. Get Method: GetStartAddress(self) - GetStartAddress(SBFunction self) -> SBAddress

### block A read only property that returns an lldb object that represents the top level lexical block (lldb.SBBlock) for this function. Get Method: GetBlock(self) - GetBlock(SBFunction self) -> SBBlock

### end_addr A read only property that returns an lldb object that represents the end address (lldb.SBAddress) for this function. Get Method: GetEndAddress(self) - GetEndAddress(SBFunction self) -> SBAddress

### instructions A read only property that returns an lldb object that represents the instructions (lldb.SBInstructionList) for this function. Get Method: get_instructions_from_current_target(self)

### mangled A read only property that returns the mangled (linkage) name for this function as a string. Get Method: GetMangledName(self) - GetMangledName(SBFunction self) -> str const *

### name A read only property that returns the name for this function as a string. Get Method: GetName(self) - GetName(SBFunction self) -> str const *

### prologue_size A read only property that returns the size in bytes of the prologue instructions as an unsigned integer. Get Method: GetPrologueByteSize(self) - GetPrologueByteSize(SBFunction self) -> uint32_t

### type A read only property that returns an lldb object that represents the return type (lldb.SBType) for this function. Get Method: GetType(self) - GetType(SBFunction self) -> SBType