Mon Jan 17 13:57:25 1994 Stan Shebs (shebs@andros.cygnus.com)
* objdump.c (stab_name): Allocate dynamically. (stab_print): Use pointers to strings instead of char arrays. (dump_stabs): Change alloc and init of arrays appropriately. (dump_stabs_1): Always decide whether to print stab_name or the stab's type number, if unnamed.
This commit is contained in:
parent
446918c82c
commit
fe2750e101
2 changed files with 26 additions and 15 deletions
|
@ -1,3 +1,11 @@
|
|||
Mon Jan 17 13:57:25 1994 Stan Shebs (shebs@andros.cygnus.com)
|
||||
|
||||
* objdump.c (stab_name): Allocate dynamically.
|
||||
(stab_print): Use pointers to strings instead of char arrays.
|
||||
(dump_stabs): Change alloc and init of arrays appropriately.
|
||||
(dump_stabs_1): Always decide whether to print stab_name or
|
||||
the stab's type number, if unnamed.
|
||||
|
||||
Fri Jan 14 14:42:48 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
|
||||
|
||||
* objcopy.c (strip_main, copy_main): Don't clobber the input file
|
||||
|
|
|
@ -639,13 +639,11 @@ disassemble_data (abfd)
|
|||
could be a direct-mapped table, but instead we build one the first
|
||||
time we need it. */
|
||||
|
||||
#define STAB_STRING_LENGTH 6
|
||||
|
||||
char stab_name[256][STAB_STRING_LENGTH];
|
||||
char **stab_name;
|
||||
|
||||
struct stab_print {
|
||||
int value;
|
||||
char string[STAB_STRING_LENGTH];
|
||||
char *string;
|
||||
};
|
||||
|
||||
struct stab_print stab_print[] = {
|
||||
|
@ -667,16 +665,16 @@ dump_stabs (abfd)
|
|||
{
|
||||
int i;
|
||||
|
||||
/* Initialize stab name array if first time. */
|
||||
if (stab_name[0][0] == 0)
|
||||
/* Allocate and initialize stab name array if first time. */
|
||||
if (stab_name == NULL)
|
||||
{
|
||||
/* Fill in numeric values for all possible strings. */
|
||||
stab_name = (char **) xmalloc (256 * sizeof(char *));
|
||||
/* Clear the array. */
|
||||
for (i = 0; i < 256; i++)
|
||||
{
|
||||
sprintf (stab_name[i], "%d", i);
|
||||
}
|
||||
for (i = 0; stab_print[i].string[0]; i++)
|
||||
strcpy (stab_name[stab_print[i].value], stab_print[i].string);
|
||||
stab_name[i] = NULL;
|
||||
/* Fill in the defined stabs. */
|
||||
for (i = 0; *stab_print[i].string; i++)
|
||||
stab_name[stab_print[i].value] = stab_print[i].string;
|
||||
}
|
||||
|
||||
dump_stabs_1 (abfd, ".stab", ".stabstr");
|
||||
|
@ -794,9 +792,14 @@ dump_stabs_1 (abfd, name1, name2)
|
|||
for (i = -1; stabs < stabs_end; stabs++, i++)
|
||||
{
|
||||
SWAP_SYMBOL (stabs, abfd);
|
||||
printf ("\n%-6d %-6s %-6d %-6d ", i,
|
||||
stab_name [stabs->n_type],
|
||||
stabs->n_other, stabs->n_desc);
|
||||
printf ("\n%-6d ", i);
|
||||
/* Print either the stab name, or, if unnamed, print its number
|
||||
again (makes consistent formatting for tools like awk). */
|
||||
if (stab_name[stabs->n_type])
|
||||
printf ("%-6s", stab_name[stabs->n_type]);
|
||||
else
|
||||
printf ("%-6d", i);
|
||||
printf (" %-6d %-6d ", stabs->n_other, stabs->n_desc);
|
||||
printf_vma (stabs->n_value);
|
||||
printf (" %-6lu", stabs->n_strx);
|
||||
|
||||
|
|
Loading…
Reference in a new issue