mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-21 10:34:21 +08:00
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:
@ -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
|
||||||
|
121
bfd/coffgen.c
121
bfd/coffgen.c
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user