FreeCalypso > hg > freecalypso-reveng
diff ticoff/basics.c @ 75:1a23ff9a81de
tiobjd: dumpsym implemented
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Tue, 25 Mar 2014 20:38:31 +0000 |
parents | 2eef88395908 |
children | 590396e27e96 |
line wrap: on
line diff
--- a/ticoff/basics.c Tue Mar 25 18:55:36 2014 +0000 +++ b/ticoff/basics.c Tue Mar 25 20:38:31 2014 +0000 @@ -42,3 +42,30 @@ } exit(0); } + +cmd_dumpsym() +{ + unsigned n; + struct internal_syment *sym; + char *sec, secstr[8]; + + get_int_section_table(); + get_int_symbol_table(); + printf("%-5s %-24s %-4s %-5s %-12s %-8s\n", + "Num", "Name", "Type", "Class", "Section", "Value"); + for (n = 0; n < nsymtab; n++) { + sym = symtab[n]; + if (!sym) + continue; + if (sym->scnum >= 1 && (unsigned)sym->scnum <= nsections) + sec = sections[sym->scnum - 1].name; + else { + sprintf(secstr, "%d", sym->scnum); + sec = secstr; + } + printf("%-5u %-24s %04X %-5d %-12s %08X%s\n", + n, sym->name, sym->type, sym->class, + sec, sym->value, sym->aux ? " Aux" : ""); + } + exit(0); +}