# HG changeset patch # User Michael Spacefalcon # Date 1396637783 0 # Node ID b8ac215367793eb14192c6721829eca594451f42 # Parent 700d77d5cf00536e736fab35cdd497a35e8a2738 tiobjd disasm: bss handling diff -r 700d77d5cf00 -r b8ac21536779 ticoff/disasm.c --- a/ticoff/disasm.c Fri Apr 04 18:39:01 2014 +0000 +++ b/ticoff/disasm.c Fri Apr 04 18:56:23 2014 +0000 @@ -12,6 +12,7 @@ #include "globals.h" extern unsigned get_u16(), get_u32(); +extern char *storage_class_to_string(); static void find_better_symbol(sec, symp, addp) @@ -333,6 +334,24 @@ } void +disasm_bss(sec) + struct internal_scnhdr *sec; +{ + unsigned m; + struct internal_syment *sym; + char classbuf[8]; + + putchar('\n'); + for (m = 0; m < sec->nsymbols; m++) { + sym = sec->sorted_symbols[m]; + printf("%08X %-7s %s\n", sym->value, + storage_class_to_string(sym->class, classbuf), + sym->name); + } + printf("%08X \n", sec->size); +} + +void disasm_sectype_by_name(sec) struct internal_scnhdr *sec; { @@ -344,7 +363,8 @@ disasm_data_section(sec); else if (!strcmp(sec->name, ".data")) disasm_data_section(sec); - /* other section types to be added */ + else if (!strcmp(sec->name, ".bss")) + disasm_bss(sec); else printf("Unrecognized section type, skipped\n"); }