diff options
Diffstat (limited to 'lldb/examples/python/stacks.py')
-rwxr-xr-x | lldb/examples/python/stacks.py | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/lldb/examples/python/stacks.py b/lldb/examples/python/stacks.py index 06907e159d7..fec879993d9 100755 --- a/lldb/examples/python/stacks.py +++ b/lldb/examples/python/stacks.py @@ -5,20 +5,28 @@ import commands import optparse import shlex + def stack_frames(debugger, command, result, dict): command_args = shlex.split(command) usage = "usage: %prog [options] <PATH> [PATH ...]" - description='''This command will enumerate all stack frames, print the stack size for each, and print an aggregation of which functions have the largest stack frame sizes at the end.''' - parser = optparse.OptionParser(description=description, prog='ls',usage=usage) - parser.add_option('-v', '--verbose', action='store_true', dest='verbose', help='display verbose debug info', default=False) + description = '''This command will enumerate all stack frames, print the stack size for each, and print an aggregation of which functions have the largest stack frame sizes at the end.''' + parser = optparse.OptionParser( + description=description, prog='ls', usage=usage) + parser.add_option( + '-v', + '--verbose', + action='store_true', + dest='verbose', + help='display verbose debug info', + default=False) try: (options, args) = parser.parse_args(command_args) except: return - + target = debugger.GetSelectedTarget() process = target.GetProcess() - + frame_info = {} for thread in process: last_frame = None @@ -28,12 +36,13 @@ def stack_frames(debugger, command, result, dict): frame_size = 0 if frame.idx == 1: if frame.fp == last_frame.fp: - # No frame one the first frame (might be right at the entry point) + # No frame one the first frame (might be right at the + # entry point) first_frame_size = 0 frame_size = frame.fp - frame.sp else: # First frame that has a valid size - first_frame_size = last_frame.fp - last_frame.sp + first_frame_size = last_frame.fp - last_frame.sp print "<%#7x> %s" % (first_frame_size, last_frame) if first_frame_size: name = last_frame.name @@ -43,7 +52,7 @@ def stack_frames(debugger, command, result, dict): frame_info[name] += first_frame_size else: # Second or higher frame - frame_size = frame.fp - last_frame.fp + frame_size = frame.fp - last_frame.fp print "<%#7x> %s" % (frame_size, frame) if frame_size > 0: name = frame.name @@ -53,7 +62,8 @@ def stack_frames(debugger, command, result, dict): frame_info[name] += frame_size last_frame = frame print frame_info - -lldb.debugger.HandleCommand("command script add -f stacks.stack_frames stack_frames") -print "A new command called 'stack_frames' was added, type 'stack_frames --help' for more information."
\ No newline at end of file + +lldb.debugger.HandleCommand( + "command script add -f stacks.stack_frames stack_frames") +print "A new command called 'stack_frames' was added, type 'stack_frames --help' for more information." |