diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 19:26:05 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 19:26:05 +0000 | 
| commit | 14f1b3e8826ce43b978db93a62d1166055db5394 (patch) | |
| tree | 0a00ad8d3498783fe0193f3b656bca17c4c8697d /examples/python/lldb_module_utils.py | |
| parent | 4ee8c119c71a06dcad1e0fecc8c675e480e59337 (diff) | |
Notes
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' | 
