diff options
Diffstat (limited to 'examples/python/lldb_module_utils.py')
-rw-r--r-- | examples/python/lldb_module_utils.py | 57 |
1 files changed, 38 insertions, 19 deletions
diff --git a/examples/python/lldb_module_utils.py b/examples/python/lldb_module_utils.py index 37f33ba416a5..eb00a489ce01 100644 --- a/examples/python/lldb_module_utils.py +++ b/examples/python/lldb_module_utils.py @@ -6,18 +6,29 @@ import shlex import string import sys -def create_dump_module_line_tables_options (): + +def create_dump_module_line_tables_options(): usage = "usage: dump_module_line_tables [options] MODULE1 [MODULE2 ...]" - description='''Dumps all line tables from all compile units for any modules specified as arguments. Specifying the --verbose flag will output address ranges for each line entry.''' - parser = optparse.OptionParser(description=description, prog='start_gdb_log',usage=usage) - parser.add_option('-v', '--verbose', action='store_true', dest='verbose', help='Display verbose output.', default=False) + description = '''Dumps all line tables from all compile units for any modules specified as arguments. Specifying the --verbose flag will output address ranges for each line entry.''' + parser = optparse.OptionParser( + description=description, + prog='start_gdb_log', + usage=usage) + parser.add_option( + '-v', + '--verbose', + action='store_true', + dest='verbose', + help='Display verbose output.', + default=False) return parser - + + def dump_module_line_tables(debugger, command, result, dict): '''Dumps all line tables from all compile units for any modules specified as arguments.''' command_args = shlex.split(command) - - parser = create_dump_module_line_tables_options () + + parser = create_dump_module_line_tables_options() try: (options, args) = parser.parse_args(command_args) except: @@ -27,33 +38,41 @@ def dump_module_line_tables(debugger, command, result, dict): lldb.target = target for module_name in command_args: result.PutCString('Searching for module "%s"' % (module_name,)) - module_fspec = lldb.SBFileSpec (module_name, False) - module = target.FindModule (module_fspec); + module_fspec = lldb.SBFileSpec(module_name, False) + module = target.FindModule(module_fspec) if module: - for cu_idx in range (module.GetNumCompileUnits()): + for cu_idx in range(module.GetNumCompileUnits()): cu = module.GetCompileUnitAtIndex(cu_idx) result.PutCString("\n%s:" % (cu.file)) for line_idx in range(cu.GetNumLineEntries()): line_entry = cu.GetLineEntryAtIndex(line_idx) start_file_addr = line_entry.addr.file_addr end_file_addr = line_entry.end_addr.file_addr - # If the two addresses are equal, this line table entry is a termination entry + # If the two addresses are equal, this line table entry + # is a termination entry if options.verbose: if start_file_addr != end_file_addr: - result.PutCString('[%#x - %#x): %s' % (start_file_addr, end_file_addr, line_entry)) + result.PutCString( + '[%#x - %#x): %s' % + (start_file_addr, end_file_addr, line_entry)) else: if start_file_addr == end_file_addr: - result.PutCString('%#x: END' % (start_file_addr)) + result.PutCString('%#x: END' % + (start_file_addr)) else: - result.PutCString('%#x: %s' % (start_file_addr, line_entry)) + result.PutCString( + '%#x: %s' % + (start_file_addr, line_entry)) if start_file_addr == end_file_addr: result.Printf("\n") else: - result.PutCString ("no module for '%s'" % module) + result.PutCString("no module for '%s'" % module) else: - result.PutCString ("error: invalid target") + result.PutCString("error: invalid target") -parser = create_dump_module_line_tables_options () +parser = create_dump_module_line_tables_options() dump_module_line_tables.__doc__ = parser.format_help() -lldb.debugger.HandleCommand('command script add -f %s.dump_module_line_tables dump_module_line_tables' % __name__) -print 'Installed "dump_module_line_tables" command'
\ No newline at end of file +lldb.debugger.HandleCommand( + 'command script add -f %s.dump_module_line_tables dump_module_line_tables' % + __name__) +print 'Installed "dump_module_line_tables" command' |