diff options
author | Johnny Chen <johnny.chen@apple.com> | 2011-07-18 22:15:37 +0000 |
---|---|---|
committer | Johnny Chen <johnny.chen@apple.com> | 2011-07-18 22:15:37 +0000 |
commit | d84a9a12490d6025a2c5dfcfa357b81ea8e106bc (patch) | |
tree | 51d10aa1d97a7b7bc7e409660656715dc94860ca /lldb/scripts/Python | |
parent | eab46257631f9dc0872a6cf725a34b650b5ba29c (diff) | |
download | bcm5719-llvm-d84a9a12490d6025a2c5dfcfa357b81ea8e106bc.tar.gz bcm5719-llvm-d84a9a12490d6025a2c5dfcfa357b81ea8e106bc.zip |
Missed the interface file for SBFunction in the previous checkin.
llvm-svn: 135436
Diffstat (limited to 'lldb/scripts/Python')
-rw-r--r-- | lldb/scripts/Python/interface/SBFunction.i | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/lldb/scripts/Python/interface/SBFunction.i b/lldb/scripts/Python/interface/SBFunction.i new file mode 100644 index 00000000000..ac3d1231597 --- /dev/null +++ b/lldb/scripts/Python/interface/SBFunction.i @@ -0,0 +1,81 @@ +//===-- SWIG Interface for SBFunction ---------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +namespace lldb { + +%feature("docstring", +"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)) + + ... +") SBFunction; +class SBFunction +{ +public: + + SBFunction (); + + SBFunction (const lldb::SBFunction &rhs); + + ~SBFunction (); + + bool + IsValid () const; + + const char * + GetName() const; + + const char * + GetMangledName () const; + + lldb::SBInstructionList + GetInstructions (lldb::SBTarget target); + + SBAddress + GetStartAddress (); + + SBAddress + GetEndAddress (); + + uint32_t + GetPrologueByteSize (); + + bool + GetDescription (lldb::SBStream &description); +}; + +} // namespace lldb |