|  | #!/usr/bin/python | 
|  |  | 
|  | import lldb | 
|  | import shlex | 
|  |  | 
|  | def dump_module_sources(module, result): | 
|  | if module: | 
|  | print >> result, "Module: %s" % (module.file) | 
|  | for compile_unit in module.compile_units: | 
|  | if compile_unit.file: | 
|  | print >> result, "  %s" % (compile_unit.file) | 
|  |  | 
|  | def info_sources(debugger, command, result, dict): | 
|  | description='''This command will dump all compile units in any modules that are listed as arguments, or for all modules if no arguments are supplied.''' | 
|  | module_names = shlex.split(command) | 
|  | target = debugger.GetSelectedTarget() | 
|  | if module_names: | 
|  | for module_name in module_names: | 
|  | dump_module_sources(target.module[module_name], result) | 
|  | else: | 
|  | for module in target.modules: | 
|  | dump_module_sources(module, result) | 
|  |  | 
|  |  | 
|  | def __lldb_init_module (debugger, dict): | 
|  | # Add any commands contained in this module to LLDB | 
|  | debugger.HandleCommand('command script add -f sources.info_sources info_sources') | 
|  | print 'The "info_sources" command has been installed, type "help info_sources" or "info_sources --help" for detailed help.' |