/*----------------------------------------------------------------------------- * Write all symbols in given symbol table to given file *----------------------------------------------------------------------------*/ static void write_map_syms( FILE *file, SymbolHash *symtab ) { SymbolHashElem *iter; Symbol *sym; for ( iter = SymbolHash_first( symtab ); iter; iter = SymbolHash_next( iter ) ) { sym = ( Symbol * )iter->value; /* CH_0017 */ fprintf( file, "%-*s ", COLUMN_WIDTH - 1, sym->name ); if ( opts.relocatable ) { fprintf( file, "= %04lX, ", sizeof_relocroutine + sizeof_reloctable + 4 + sym->value ); } else { fprintf( file, "= %04lX, ", sym->value ); } if ( sym->scope == SCOPE_LOCAL ) fputc( 'L', file ); else fputc( 'G', file ); fprintf( file, ": %s\n", sym->module ? sym->module->modname : "" ); } }
static void dump_SymbolHash ( SymbolHash *symtab, char *name ) { SymbolHashElem *iter; Symbol *sym; warn("Symtab \"%s\": %s\n", name, SymbolHash_empty(symtab) ? "EMPTY" : "" ); for ( iter = SymbolHash_first( symtab ); iter; iter = SymbolHash_next( iter ) ) { sym = (Symbol *)iter->value; if ( sym != SymbolHash_get( symtab, sym->name ) ) warn("ERROR: symbol %s not found in hash\n", sym->name); warn(" "); dump_Symbol( sym ); } }