#!/usr/bin/python # # ### rough code to print EXTERNAL symbols from a PIC object file # import sys import os import coff_file _CLASSES = { coff_file.C_NULL: 'NULL', coff_file.C_EXT: 'EXT', coff_file.C_STAT: 'STAT', coff_file.C_LABEL: 'LABEL', coff_file.C_FILE: 'FILE', coff_file.C_EOF: 'EOF', coff_file.C_SECTION: 'SECTION', } def nm(fname): _, _, symbols, _ = coff_file.read_file(fname) for sym in symbols: if sym and sym[4] == coff_file.C_EXT: print '%s = %d [sect:%d type:%s cls:%s aux:%s]' \ % (sym[0], sym[1], sym[2], sym[3], _CLASSES.get(sym[4], 'unknown'), sym[5]) if __name__ == '__main__': if len(sys.argv) != 2: print 'USAGE: %s FNAME' % (os.path.basename(sys.argv[0],)) sys.exit(1) nm(sys.argv[1])