FreeCalypso > hg > freecalypso-reveng
diff ticoff/basics.c @ 77:590396e27e96
tiobjd: basics dump streamlined
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Tue, 25 Mar 2014 22:47:51 +0000 |
parents | 1a23ff9a81de |
children |
line wrap: on
line diff
--- a/ticoff/basics.c Tue Mar 25 20:39:44 2014 +0000 +++ b/ticoff/basics.c Tue Mar 25 22:47:51 2014 +0000 @@ -27,12 +27,11 @@ return(0); } -cmd_sechdr() +dump_sechdr() { unsigned n; struct internal_scnhdr *inf; - get_int_section_table(); for (n = 0; n < nsections; n++) { inf = sections + n; printf("#%d: %s size=%u, flags=0x%x\n", n, inf->name, @@ -40,32 +39,36 @@ printf("\t%u reloc, %u line entries\n", inf->nreloc, inf->nlineent); } + return(0); +} + +cmd_sechdr() +{ + get_int_section_table(); + dump_sechdr(); exit(0); } -cmd_dumpsym() +cmd_symtab() { - 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" : ""); - } + dump_symtab(); exit(0); } + +cmd_basics() +{ + printf("%s:\n", objfilename); + dump_filehdr_info(); + putchar('\n'); + get_int_section_table(); + printf("Sections:\n\n"); + dump_sechdr(); + putchar('\n'); + get_int_symbol_table(); + printf("Symbol table:\n\n"); + dump_symtab(); + putchar('\n'); + exit(0); +}