#!/usr/bin/env python from __future__ import print_function import lldb import shlex def dump_module_sources(module, result): if module: print("Module: %s" % (module.file), file=result) for compile_unit in module.compile_units: if compile_unit.file: print(" %s" % (compile_unit.file), file=result) 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.')