Fri Feb 12 14:23:07 1993 Ian Lance Taylor (ian@cygnus.com)

* coffgen.c (coff_print_symbol): Print correct tagndx value;
	cleaned up output formatting a bit.
This commit is contained in:
Ian Lance Taylor
1993-02-12 22:24:47 +00:00
parent 33742334a8
commit e61cfdf820
2 changed files with 92 additions and 94 deletions

View File

@ -1,3 +1,8 @@
Fri Feb 12 14:23:07 1993 Ian Lance Taylor (ian@cygnus.com)
* coffgen.c (coff_print_symbol): Print correct tagndx value;
cleaned up output formatting a bit.
Fri Feb 12 08:28:56 1993 Steve Chamberlain (sac@thepub.cygnus.com) Fri Feb 12 08:28:56 1993 Steve Chamberlain (sac@thepub.cygnus.com)
* coffcode.h (coff_set_arch_mach_hook): *FIXME* the H8/300 is always * coffcode.h (coff_set_arch_mach_hook): *FIXME* the H8/300 is always

View File

@ -369,7 +369,7 @@ struct internal_syment *syment)
{ {
/* Normalize the symbol flags */ /* Normalize the symbol flags */
if (coff_symbol_ptr->symbol.section == &bfd_com_section) { if (bfd_is_com_section (coff_symbol_ptr->symbol.section)) {
/* a common symbol is undefined with a value */ /* a common symbol is undefined with a value */
syment->n_scnum = N_UNDEF; syment->n_scnum = N_UNDEF;
syment->n_value = coff_symbol_ptr->symbol.value; syment->n_value = coff_symbol_ptr->symbol.value;
@ -664,7 +664,7 @@ DEFUN(coff_write_alien_symbol,(abfd, symbol, written),
native->u.syment.n_scnum = N_UNDEF; native->u.syment.n_scnum = N_UNDEF;
native->u.syment.n_value = symbol->value; native->u.syment.n_value = symbol->value;
} }
else if (symbol->section == &bfd_com_section) else if (bfd_is_com_section (symbol->section))
{ {
native->u.syment.n_scnum = N_UNDEF; native->u.syment.n_scnum = N_UNDEF;
native->u.syment.n_value = symbol->value; native->u.syment.n_value = symbol->value;
@ -1276,113 +1276,106 @@ DEFUN (coff_make_debug_symbol, (abfd, ptr, sz),
return &new->symbol; return &new->symbol;
} }
/* Print out information about COFF symbol. */
void void
DEFUN(coff_print_symbol,(abfd, filep, symbol, how), coff_print_symbol (abfd, filep, symbol, how)
bfd *abfd AND bfd *abfd;
PTR filep AND PTR filep;
asymbol *symbol AND asymbol *symbol;
bfd_print_symbol_type how) bfd_print_symbol_type how;
{ {
FILE *file = (FILE *)filep; FILE *file = (FILE *) filep;
switch (how) {
case bfd_print_symbol_name:
fprintf(file, "%s", symbol->name);
break;
case bfd_print_symbol_more:
fprintf(file, "coff %lx %lx", (unsigned long) coffsymbol(symbol)->native,
(unsigned long) coffsymbol(symbol)->lineno);
break;
case bfd_print_symbol_nm:
switch (how)
{ {
CONST char *section_name = symbol->section->name; case bfd_print_symbol_name:
bfd_print_symbol_vandf((PTR) file, symbol); fprintf (file, "%s", symbol->name);
break;
case bfd_print_symbol_more:
fprintf (file, "coff %s %s",
coffsymbol(symbol)->native ? "n" : "g",
coffsymbol(symbol)->lineno ? "l" : " ");
break;
fprintf(file, " %-5s %s %s %s", case bfd_print_symbol_nm:
section_name, bfd_print_symbol_vandf ((PTR) file, symbol);
fprintf (file, " %-5s %s %s %s",
symbol->section->name,
coffsymbol(symbol)->native ? "n" : "g", coffsymbol(symbol)->native ? "n" : "g",
coffsymbol(symbol)->lineno ? "l" : " ", coffsymbol(symbol)->lineno ? "l" : " ",
symbol->name); symbol->name);
}
break; break;
case bfd_print_symbol_all: case bfd_print_symbol_all:
/* Print out the symbols in a reasonable way */
{
CONST char *section_name = symbol->section->name;
if (coffsymbol(symbol)->native) if (coffsymbol(symbol)->native)
{ {
unsigned int aux; unsigned int aux;
combined_entry_type *combined = coffsymbol(symbol)->native; combined_entry_type *combined = coffsymbol (symbol)->native;
combined_entry_type *root = obj_raw_syments(abfd); combined_entry_type *root = obj_raw_syments (abfd);
struct lineno_cache_entry *l = coffsymbol(symbol)->lineno;
fprintf(file,"[%3d]", fprintf (file,"[%3d]", combined - root);
combined - root);
fprintf (file,
fprintf(file, "(sc %2d)(fl%4x)(ty%3x)(sc%3d) nx(%d) %08x %s", "(sc %2d)(fl 0x%02x)(ty %3x)(sc %3d) (nx %d) 0x%08x %s",
combined->u.syment.n_scnum, combined->u.syment.n_scnum,
combined->u.syment.n_flags, combined->u.syment.n_flags,
combined->u.syment.n_type, combined->u.syment.n_type,
combined->u.syment.n_sclass, combined->u.syment.n_sclass,
combined->u.syment.n_numaux, combined->u.syment.n_numaux,
combined->u.syment.n_value, combined->u.syment.n_value,
symbol->name symbol->name);
);
for (aux = 0; aux < combined->u.syment.n_numaux; aux++) for (aux = 0; aux < combined->u.syment.n_numaux; aux++)
{ {
fprintf(file,"\n"); combined_entry_type *auxp = combined + aux + 1;
switch (combined->u.syment.n_sclass) { long tagndx;
if (auxp->fix_tag)
tagndx = auxp->u.auxent.x_sym.x_tagndx.p - root;
else
tagndx = auxp->u.auxent.x_sym.x_tagndx.l;
fprintf (file, "\n");
switch (combined->u.syment.n_sclass)
{
case C_FILE: case C_FILE:
fprintf(file, "File "); fprintf (file, "File ");
break; break;
default: default:
fprintf(file, "AUX lnno %x size %x tagndx %x",
combined[aux+1].u.auxent.x_sym.x_misc.x_lnsz.x_lnno, fprintf (file, "AUX lnno %d size 0x%x tagndx %d",
combined[aux+1].u.auxent.x_sym.x_misc.x_lnsz.x_size, auxp->u.auxent.x_sym.x_misc.x_lnsz.x_lnno,
combined[aux+1].u.auxent.x_sym.x_tagndx.l); auxp->u.auxent.x_sym.x_misc.x_lnsz.x_size,
tagndx);
break; break;
}
} }
}
{
struct lineno_cache_entry *l = coffsymbol(symbol)->lineno;
if (l) if (l)
{ {
printf("\n%s :", l->u.sym->name); printf ("\n%s :", l->u.sym->name);
l++; l++;
while (l->line_number) while (l->line_number)
{ {
printf("\n%4d : %x", printf ("\n%4d : 0x%x",
l->line_number, l->line_number,
l->u.offset); l->u.offset);
l++; l++;
} }
} }
} }
else
{
bfd_print_symbol_vandf ((PTR) file, symbol);
} fprintf (file, " %-5s %s %s %s",
symbol->section->name,
else {
bfd_print_symbol_vandf((PTR) file, symbol);
fprintf(file, " %-5s %s %s %s",
section_name,
coffsymbol(symbol)->native ? "n" : "g", coffsymbol(symbol)->native ? "n" : "g",
coffsymbol(symbol)->lineno ? "l" : " ", coffsymbol(symbol)->lineno ? "l" : " ",
symbol->name); symbol->name);
} }
}
} }
} }