#------------------------------------------------------------------------------- # elftools example: elf_show_debug_sections.py # # Show the names of all .debug_* sections in ELF files. # # Eli Bendersky (eliben@gmail.com) # This code is in the public domain #------------------------------------------------------------------------------- from __future__ import print_function import sys # If elftools is not installed, maybe we're running from the root or examples # dir of the source distribution try: import elftools except ImportError: sys.path.extend(['.', '..']) from elftools.common.py3compat import bytes2str from elftools.elf.elffile import ELFFile def process_file(filename): print('In file:', filename) with open(filename, 'rb') as f: elffile = ELFFile(f) for section in elffile.iter_sections(): # Section names are bytes objects if section.name.startswith(b'.debug'): print(' ' + bytes2str(section.name)) if __name__ == '__main__': for filename in sys.argv[1:]: process_file(filename)