#!/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.'