static int block_depth (struct block *);
-static void print_partial_symbols (struct partial_symbol **, int,
+static void print_partial_symbols (struct gdbarch *,
+ struct partial_symbol **, int,
char *, struct ui_file *);
void _initialize_symmisc (void);
struct print_symbol_args
{
+ struct gdbarch *gdbarch;
struct symbol *symbol;
int depth;
struct ui_file *outfile;
void
print_symbol_bcache_statistics (void)
{
+ struct program_space *pspace;
struct objfile *objfile;
immediate_quit++;
- ALL_OBJFILES (objfile)
+ ALL_PSPACES (pspace)
+ ALL_PSPACE_OBJFILES (pspace, objfile)
{
printf_filtered (_("Byte cache statistics for '%s':\n"), objfile->name);
print_bcache_statistics (objfile->psymbol_cache, "partial symbol cache");
void
print_objfile_statistics (void)
{
+ struct program_space *pspace;
struct objfile *objfile;
struct symtab *s;
struct partial_symtab *ps;
int i, linetables, blockvectors;
immediate_quit++;
- ALL_OBJFILES (objfile)
+ ALL_PSPACES (pspace)
+ ALL_PSPACE_OBJFILES (pspace, objfile)
{
printf_filtered (_("Statistics for '%s':\n"), objfile->name);
if (OBJSTAT (objfile, n_stabs) > 0)
static void
dump_msymbols (struct objfile *objfile, struct ui_file *outfile)
{
+ struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct minimal_symbol *msymbol;
int index;
char ms_type;
break;
}
fprintf_filtered (outfile, "[%2d] %c ", index, ms_type);
- fputs_filtered (paddress (SYMBOL_VALUE_ADDRESS (msymbol)), outfile);
+ fputs_filtered (paddress (gdbarch, SYMBOL_VALUE_ADDRESS (msymbol)),
+ outfile);
fprintf_filtered (outfile, " %s", SYMBOL_LINKAGE_NAME (msymbol));
if (section)
fprintf_filtered (outfile, " section %s",
dump_psymtab (struct objfile *objfile, struct partial_symtab *psymtab,
struct ui_file *outfile)
{
+ struct gdbarch *gdbarch = get_objfile_arch (objfile);
int i;
fprintf_filtered (outfile, "\nPartial symtab for source file %s ",
if (i != 0)
fprintf_filtered (outfile, ", ");
wrap_here (" ");
- fputs_filtered (paddress (ANOFFSET (psymtab->section_offsets, i)),
+ fputs_filtered (paddress (gdbarch,
+ ANOFFSET (psymtab->section_offsets, i)),
outfile);
}
fprintf_filtered (outfile, "\n");
fprintf_filtered (outfile, " Symbols cover text addresses ");
- fputs_filtered (paddress (psymtab->textlow), outfile);
+ fputs_filtered (paddress (gdbarch, psymtab->textlow), outfile);
fprintf_filtered (outfile, "-");
- fputs_filtered (paddress (psymtab->texthigh), outfile);
+ fputs_filtered (paddress (gdbarch, psymtab->texthigh), outfile);
fprintf_filtered (outfile, "\n");
fprintf_filtered (outfile, " Depends on %d other partial symtabs.\n",
psymtab->number_of_dependencies);
}
if (psymtab->n_global_syms > 0)
{
- print_partial_symbols (objfile->global_psymbols.list
+ print_partial_symbols (gdbarch,
+ objfile->global_psymbols.list
+ psymtab->globals_offset,
psymtab->n_global_syms, "Global", outfile);
}
if (psymtab->n_static_syms > 0)
{
- print_partial_symbols (objfile->static_psymbols.list
+ print_partial_symbols (gdbarch,
+ objfile->static_psymbols.list
+ psymtab->statics_offset,
psymtab->n_static_syms, "Static", outfile);
}
dump_symtab_1 (struct objfile *objfile, struct symtab *symtab,
struct ui_file *outfile)
{
+ struct gdbarch *gdbarch = get_objfile_arch (objfile);
int i;
struct dict_iterator iter;
int len, blen;
for (i = 0; i < len; i++)
{
fprintf_filtered (outfile, " line %d at ", l->item[i].line);
- fputs_filtered (paddress (l->item[i].pc), outfile);
+ fputs_filtered (paddress (gdbarch, l->item[i].pc), outfile);
fprintf_filtered (outfile, "\n");
}
}
wants it. */
fprintf_filtered (outfile, ", %d syms/buckets in ",
dict_size (BLOCK_DICT (b)));
- fputs_filtered (paddress (BLOCK_START (b)), outfile);
+ fputs_filtered (paddress (gdbarch, BLOCK_START (b)), outfile);
fprintf_filtered (outfile, "..");
- fputs_filtered (paddress (BLOCK_END (b)), outfile);
+ fputs_filtered (paddress (gdbarch, BLOCK_END (b)), outfile);
if (BLOCK_FUNCTION (b))
{
fprintf_filtered (outfile, ", function %s",
ALL_BLOCK_SYMBOLS (b, iter, sym)
{
struct print_symbol_args s;
+ s.gdbarch = gdbarch;
s.symbol = sym;
s.depth = depth + 1;
s.outfile = outfile;
static int
print_symbol (void *args)
{
+ struct gdbarch *gdbarch = ((struct print_symbol_args *) args)->gdbarch;
struct symbol *symbol = ((struct print_symbol_args *) args)->symbol;
int depth = ((struct print_symbol_args *) args)->depth;
struct ui_file *outfile = ((struct print_symbol_args *) args)->outfile;
if (SYMBOL_DOMAIN (symbol) == LABEL_DOMAIN)
{
fprintf_filtered (outfile, "label %s at ", SYMBOL_PRINT_NAME (symbol));
- fputs_filtered (paddress (SYMBOL_VALUE_ADDRESS (symbol)), outfile);
+ fputs_filtered (paddress (gdbarch, SYMBOL_VALUE_ADDRESS (symbol)),
+ outfile);
if (section)
fprintf_filtered (outfile, " section %s\n",
bfd_section_name (section->the_bfd_section->owner,
case LOC_STATIC:
fprintf_filtered (outfile, "static at ");
- fputs_filtered (paddress (SYMBOL_VALUE_ADDRESS (symbol)), outfile);
+ fputs_filtered (paddress (gdbarch, SYMBOL_VALUE_ADDRESS (symbol)),
+ outfile);
if (section)
fprintf_filtered (outfile, " section %s",
bfd_section_name (section->the_bfd_section->owner,
case LOC_LABEL:
fprintf_filtered (outfile, "label at ");
- fputs_filtered (paddress (SYMBOL_VALUE_ADDRESS (symbol)), outfile);
+ fputs_filtered (paddress (gdbarch, SYMBOL_VALUE_ADDRESS (symbol)),
+ outfile);
if (section)
fprintf_filtered (outfile, " section %s",
bfd_section_name (section->the_bfd_section->owner,
fprintf_filtered (outfile, "block object ");
gdb_print_host_address (SYMBOL_BLOCK_VALUE (symbol), outfile);
fprintf_filtered (outfile, ", ");
- fputs_filtered (paddress (BLOCK_START (SYMBOL_BLOCK_VALUE (symbol))),
+ fputs_filtered (paddress (gdbarch,
+ BLOCK_START (SYMBOL_BLOCK_VALUE (symbol))),
outfile);
fprintf_filtered (outfile, "..");
- fputs_filtered (paddress (BLOCK_END (SYMBOL_BLOCK_VALUE (symbol))),
+ fputs_filtered (paddress (gdbarch,
+ BLOCK_END (SYMBOL_BLOCK_VALUE (symbol))),
outfile);
if (section)
fprintf_filtered (outfile, " section %s",
}
static void
-print_partial_symbols (struct partial_symbol **p, int count, char *what,
+print_partial_symbols (struct gdbarch *gdbarch,
+ struct partial_symbol **p, int count, char *what,
struct ui_file *outfile)
{
fprintf_filtered (outfile, " %s partial symbols:\n", what);
break;
}
fputs_filtered (", ", outfile);
- fputs_filtered (paddress (SYMBOL_VALUE_ADDRESS (*p)), outfile);
+ fputs_filtered (paddress (gdbarch, SYMBOL_VALUE_ADDRESS (*p)), outfile);
fprintf_filtered (outfile, "\n");
p++;
}
struct cleanup *cleanups;
char *filename = DEV_TTY;
char *symname = NULL;
+ struct program_space *pspace;
struct objfile *objfile;
struct stat sym_st, obj_st;
make_cleanup_ui_file_delete (outfile);
immediate_quit++;
- ALL_OBJFILES (objfile)
- if (symname == NULL
- || (!stat (objfile->name, &obj_st) && sym_st.st_ino == obj_st.st_ino))
- dump_msymbols (objfile, outfile);
+ ALL_PSPACES (pspace)
+ ALL_PSPACE_OBJFILES (pspace, objfile)
+ if (symname == NULL
+ || (!stat (objfile->name, &obj_st) && sym_st.st_ino == obj_st.st_ino))
+ dump_msymbols (objfile, outfile);
immediate_quit--;
fprintf_filtered (outfile, "\n\n");
do_cleanups (cleanups);
void
maintenance_print_objfiles (char *ignore, int from_tty)
{
+ struct program_space *pspace;
struct objfile *objfile;
dont_repeat ();
immediate_quit++;
- ALL_OBJFILES (objfile)
- dump_objfile (objfile);
+ ALL_PSPACES (pspace)
+ ALL_PSPACE_OBJFILES (pspace, objfile)
+ dump_objfile (objfile);
immediate_quit--;
}
void
maintenance_info_symtabs (char *regexp, int from_tty)
{
+ struct program_space *pspace;
struct objfile *objfile;
if (regexp)
re_comp (regexp);
- ALL_OBJFILES (objfile)
+ ALL_PSPACES (pspace)
+ ALL_PSPACE_OBJFILES (pspace, objfile)
{
struct symtab *symtab;
void
maintenance_info_psymtabs (char *regexp, int from_tty)
{
+ struct program_space *pspace;
struct objfile *objfile;
if (regexp)
re_comp (regexp);
- ALL_OBJFILES (objfile)
+ ALL_PSPACES (pspace)
+ ALL_PSPACE_OBJFILES (pspace, objfile)
{
+ struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct partial_symtab *psymtab;
/* We don't want to print anything for this objfile until we
printf_filtered (" fullname %s\n",
psymtab->fullname ? psymtab->fullname : "(null)");
printf_filtered (" text addresses ");
- fputs_filtered (paddress (psymtab->textlow), gdb_stdout);
+ fputs_filtered (paddress (gdbarch, psymtab->textlow),
+ gdb_stdout);
printf_filtered (" -- ");
- fputs_filtered (paddress (psymtab->texthigh), gdb_stdout);
+ fputs_filtered (paddress (gdbarch, psymtab->texthigh),
+ gdb_stdout);
printf_filtered ("\n");
printf_filtered (" globals ");
if (psymtab->n_global_syms)
ALL_PSYMTABS (objfile, ps)
{
+ struct gdbarch *gdbarch = get_objfile_arch (objfile);
s = PSYMTAB_TO_SYMTAB (ps);
if (s == NULL)
continue;
printf_filtered ("Psymtab ");
puts_filtered (ps->filename);
printf_filtered (" covers bad range ");
- fputs_filtered (paddress (ps->textlow), gdb_stdout);
+ fputs_filtered (paddress (gdbarch, ps->textlow), gdb_stdout);
printf_filtered (" - ");
- fputs_filtered (paddress (ps->texthigh), gdb_stdout);
+ fputs_filtered (paddress (gdbarch, ps->texthigh), gdb_stdout);
printf_filtered ("\n");
continue;
}
printf_filtered ("Psymtab ");
puts_filtered (ps->filename);
printf_filtered (" covers ");
- fputs_filtered (paddress (ps->textlow), gdb_stdout);
+ fputs_filtered (paddress (gdbarch, ps->textlow), gdb_stdout);
printf_filtered (" - ");
- fputs_filtered (paddress (ps->texthigh), gdb_stdout);
+ fputs_filtered (paddress (gdbarch, ps->texthigh), gdb_stdout);
printf_filtered (" but symtab covers only ");
- fputs_filtered (paddress (BLOCK_START (b)), gdb_stdout);
+ fputs_filtered (paddress (gdbarch, BLOCK_START (b)), gdb_stdout);
printf_filtered (" - ");
- fputs_filtered (paddress (BLOCK_END (b)), gdb_stdout);
+ fputs_filtered (paddress (gdbarch, BLOCK_END (b)), gdb_stdout);
printf_filtered ("\n");
}
}