From 94c93c35b50d0783fdfda277508d0ae6c3e372fb Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 8 May 2020 14:21:22 -0600 Subject: Remove ALL_PSPACES This removes the ALL_PSPACES macro. In this case it seemed cleanest to change how program spaces are stored -- instead of using a linked list, they are now stored in a std::vector. gdb/ChangeLog 2020-05-08 Tom Tromey * symtab.c (set_symbol_cache_size) (maintenance_print_symbol_cache, maintenance_flush_symbol_cache) (maintenance_print_symbol_cache_statistics): Update. * symmisc.c (print_symbol_bcache_statistics) (print_objfile_statistics, maintenance_print_objfiles) (maintenance_info_symtabs, maintenance_check_symtabs) (maintenance_expand_symtabs, maintenance_info_line_tables): Update. * symfile-debug.c (set_debug_symfile): Update. * source.c (forget_cached_source_info): Update. * python/python.c (gdbpy_progspaces): Update. * psymtab.c (maintenance_info_psymtabs): Update. * probe.c (parse_probes): Update. * linespec.c (iterate_over_all_matching_symtabs) (collect_symtabs_from_filename, search_minsyms_for_name): Update. * guile/scm-progspace.c (gdbscm_progspaces): Update. * exec.c (exec_target::close): Update. * ada-tasks.c (ada_tasks_new_objfile_observer): Update. * breakpoint.c (print_one_breakpoint_location) (create_longjmp_master_breakpoint) (create_std_terminate_master_breakpoint): Update. * progspace.c (program_spaces): Now a std::vector. (maybe_new_address_space): Update. (add_program_space): Remove. (program_space::program_space): Update. (remove_program_space): Update. (number_of_program_spaces): Remove. (print_program_space, update_address_spaces): Update. * progspace.h (program_spaces): Change type. (ALL_PSPACES): Remove. (number_of_program_spaces): Don't declare. (struct program_space) : Remove. --- gdb/symmisc.c | 134 ++++++++++++++++++++++++++-------------------------------- 1 file changed, 61 insertions(+), 73 deletions(-) (limited to 'gdb/symmisc.c') diff --git a/gdb/symmisc.c b/gdb/symmisc.c index f45364a..a00009f 100644 --- a/gdb/symmisc.c +++ b/gdb/symmisc.c @@ -61,9 +61,7 @@ static void print_symbol (struct gdbarch *gdbarch, struct symbol *symbol, void print_symbol_bcache_statistics (void) { - struct program_space *pspace; - - ALL_PSPACES (pspace) + for (struct program_space *pspace : program_spaces) for (objfile *objfile : pspace->objfiles ()) { QUIT; @@ -78,64 +76,63 @@ print_symbol_bcache_statistics (void) void print_objfile_statistics (void) { - struct program_space *pspace; int i, linetables, blockvectors; - ALL_PSPACES (pspace) - for (objfile *objfile : pspace->objfiles ()) - { - QUIT; - printf_filtered (_("Statistics for '%s':\n"), objfile_name (objfile)); - if (OBJSTAT (objfile, n_stabs) > 0) - printf_filtered (_(" Number of \"stab\" symbols read: %d\n"), - OBJSTAT (objfile, n_stabs)); - if (objfile->per_bfd->n_minsyms > 0) - printf_filtered (_(" Number of \"minimal\" symbols read: %d\n"), - objfile->per_bfd->n_minsyms); - if (OBJSTAT (objfile, n_psyms) > 0) - printf_filtered (_(" Number of \"partial\" symbols read: %d\n"), - OBJSTAT (objfile, n_psyms)); - if (OBJSTAT (objfile, n_syms) > 0) - printf_filtered (_(" Number of \"full\" symbols read: %d\n"), - OBJSTAT (objfile, n_syms)); - if (OBJSTAT (objfile, n_types) > 0) - printf_filtered (_(" Number of \"types\" defined: %d\n"), - OBJSTAT (objfile, n_types)); - if (objfile->sf) - objfile->sf->qf->print_stats (objfile); - i = linetables = 0; - for (compunit_symtab *cu : objfile->compunits ()) - { - for (symtab *s : compunit_filetabs (cu)) - { - i++; - if (SYMTAB_LINETABLE (s) != NULL) - linetables++; - } - } - blockvectors = std::distance (objfile->compunits ().begin (), - objfile->compunits ().end ()); - printf_filtered (_(" Number of symbol tables: %d\n"), i); - printf_filtered (_(" Number of symbol tables with line tables: %d\n"), - linetables); - printf_filtered (_(" Number of symbol tables with blockvectors: %d\n"), - blockvectors); - - if (OBJSTAT (objfile, sz_strtab) > 0) - printf_filtered (_(" Space used by string tables: %d\n"), - OBJSTAT (objfile, sz_strtab)); - printf_filtered (_(" Total memory used for objfile obstack: %s\n"), - pulongest (obstack_memory_used (&objfile - ->objfile_obstack))); - printf_filtered (_(" Total memory used for BFD obstack: %s\n"), - pulongest (obstack_memory_used (&objfile->per_bfd - ->storage_obstack))); - printf_filtered - (_(" Total memory used for psymbol cache: %d\n"), - objfile->partial_symtabs->psymbol_cache.memory_used ()); - printf_filtered (_(" Total memory used for string cache: %d\n"), - objfile->per_bfd->string_cache.memory_used ()); - } + for (struct program_space *pspace : program_spaces) + for (objfile *objfile : pspace->objfiles ()) + { + QUIT; + printf_filtered (_("Statistics for '%s':\n"), objfile_name (objfile)); + if (OBJSTAT (objfile, n_stabs) > 0) + printf_filtered (_(" Number of \"stab\" symbols read: %d\n"), + OBJSTAT (objfile, n_stabs)); + if (objfile->per_bfd->n_minsyms > 0) + printf_filtered (_(" Number of \"minimal\" symbols read: %d\n"), + objfile->per_bfd->n_minsyms); + if (OBJSTAT (objfile, n_psyms) > 0) + printf_filtered (_(" Number of \"partial\" symbols read: %d\n"), + OBJSTAT (objfile, n_psyms)); + if (OBJSTAT (objfile, n_syms) > 0) + printf_filtered (_(" Number of \"full\" symbols read: %d\n"), + OBJSTAT (objfile, n_syms)); + if (OBJSTAT (objfile, n_types) > 0) + printf_filtered (_(" Number of \"types\" defined: %d\n"), + OBJSTAT (objfile, n_types)); + if (objfile->sf) + objfile->sf->qf->print_stats (objfile); + i = linetables = 0; + for (compunit_symtab *cu : objfile->compunits ()) + { + for (symtab *s : compunit_filetabs (cu)) + { + i++; + if (SYMTAB_LINETABLE (s) != NULL) + linetables++; + } + } + blockvectors = std::distance (objfile->compunits ().begin (), + objfile->compunits ().end ()); + printf_filtered (_(" Number of symbol tables: %d\n"), i); + printf_filtered (_(" Number of symbol tables with line tables: %d\n"), + linetables); + printf_filtered (_(" Number of symbol tables with blockvectors: %d\n"), + blockvectors); + + if (OBJSTAT (objfile, sz_strtab) > 0) + printf_filtered (_(" Space used by string tables: %d\n"), + OBJSTAT (objfile, sz_strtab)); + printf_filtered (_(" Total memory used for objfile obstack: %s\n"), + pulongest (obstack_memory_used (&objfile + ->objfile_obstack))); + printf_filtered (_(" Total memory used for BFD obstack: %s\n"), + pulongest (obstack_memory_used (&objfile->per_bfd + ->storage_obstack))); + printf_filtered + (_(" Total memory used for psymbol cache: %d\n"), + objfile->partial_symtabs->psymbol_cache.memory_used ()); + printf_filtered (_(" Total memory used for string cache: %d\n"), + objfile->per_bfd->string_cache.memory_used ()); + } } static void @@ -762,14 +759,12 @@ maintenance_print_msymbols (const char *args, int from_tty) static void maintenance_print_objfiles (const char *regexp, int from_tty) { - struct program_space *pspace; - dont_repeat (); if (regexp) re_comp (regexp); - ALL_PSPACES (pspace) + for (struct program_space *pspace : program_spaces) for (objfile *objfile : pspace->objfiles ()) { QUIT; @@ -784,14 +779,12 @@ maintenance_print_objfiles (const char *regexp, int from_tty) static void maintenance_info_symtabs (const char *regexp, int from_tty) { - struct program_space *pspace; - dont_repeat (); if (regexp) re_comp (regexp); - ALL_PSPACES (pspace) + for (struct program_space *pspace : program_spaces) for (objfile *objfile : pspace->objfiles ()) { /* We don't want to print anything for this objfile until we @@ -896,9 +889,7 @@ maintenance_info_symtabs (const char *regexp, int from_tty) static void maintenance_check_symtabs (const char *ignore, int from_tty) { - struct program_space *pspace; - - ALL_PSPACES (pspace) + for (struct program_space *pspace : program_spaces) for (objfile *objfile : pspace->objfiles ()) { /* We don't want to print anything for this objfile until we @@ -944,7 +935,6 @@ maintenance_check_symtabs (const char *ignore, int from_tty) static void maintenance_expand_symtabs (const char *args, int from_tty) { - struct program_space *pspace; char *regexp = NULL; /* We use buildargv here so that we handle spaces in the regexp @@ -964,7 +954,7 @@ maintenance_expand_symtabs (const char *args, int from_tty) if (regexp) re_comp (regexp); - ALL_PSPACES (pspace) + for (struct program_space *pspace : program_spaces) for (objfile *objfile : pspace->objfiles ()) { if (objfile->sf) @@ -1065,14 +1055,12 @@ maintenance_print_one_line_table (struct symtab *symtab, void *data) static void maintenance_info_line_tables (const char *regexp, int from_tty) { - struct program_space *pspace; - dont_repeat (); if (regexp != NULL) re_comp (regexp); - ALL_PSPACES (pspace) + for (struct program_space *pspace : program_spaces) for (objfile *objfile : pspace->objfiles ()) { for (compunit_symtab *cust : objfile->compunits ()) -- cgit v1.1