From 077cbab270376098e90c841690f9e4439b63d3d4 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 22 Oct 2019 21:13:10 -0600 Subject: [PATCH] Consolidate psymtab "Reading" messages Each symbol reader implemented its own "Reading..." messages, and most of them double-checked that a previously-expanded psymtab could not be re-read. This patch consolidates the message-printing, and changes these checks into asserts. gdb/ChangeLog 2020-01-26 Tom Tromey * xcoffread.c (xcoff_read_symtab): Remove prints. Add assert. * psymtab.c (psymtab_to_symtab): Print verbose "Reading" messages. * mdebugread.c (mdebug_read_symtab): Remove prints. * dwarf2read.c (dwarf2_psymtab::read_symtab): Remove prints. Add assert. * dbxread.c (dbx_read_symtab): Remove prints. Add assert. Change-Id: I795be9710d42708299bb7b44972cffd27aec9413 --- gdb/ChangeLog | 10 ++++++++++ gdb/dbxread.c | 20 +------------------- gdb/dwarf2read.c | 44 +++++++++++++------------------------------- gdb/mdebugread.c | 9 --------- gdb/psymtab.c | 11 +++++++++++ gdb/xcoffread.c | 20 +------------------- 6 files changed, 36 insertions(+), 78 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8fcb24ec5cd..ed3b97bfa10 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2020-01-26 Tom Tromey + + * xcoffread.c (xcoff_read_symtab): Remove prints. Add assert. + * psymtab.c (psymtab_to_symtab): Print verbose "Reading" + messages. + * mdebugread.c (mdebug_read_symtab): Remove prints. + * dwarf2read.c (dwarf2_psymtab::read_symtab): Remove prints. Add + assert. + * dbxread.c (dbx_read_symtab): Remove prints. Add assert. + 2020-01-26 Tom Tromey * xcoffread.c (this_symtab_psymtab, read_xcoff_symtab) diff --git a/gdb/dbxread.c b/gdb/dbxread.c index 64387c62c17..9d8d938ba53 100644 --- a/gdb/dbxread.c +++ b/gdb/dbxread.c @@ -2117,24 +2117,10 @@ dbx_psymtab_to_symtab_1 (struct objfile *objfile, legacy_psymtab *pst) static void dbx_read_symtab (legacy_psymtab *self, struct objfile *objfile) { - if (self->readin) - { - fprintf_unfiltered (gdb_stderr, "Psymtab for %s already read in. " - "Shouldn't happen.\n", - self->filename); - return; - } + gdb_assert (!self->readin); if (LDSYMLEN (self) || self->number_of_dependencies) { - /* Print the message now, before reading the string table, - to avoid disconcerting pauses. */ - if (info_verbose) - { - printf_filtered ("Reading in symbols for %s...", self->filename); - gdb_flush (gdb_stdout); - } - next_symbol_text_func = dbx_next_symbol_text; { @@ -2155,10 +2141,6 @@ dbx_read_symtab (legacy_psymtab *self, struct objfile *objfile) /* Match with global symbols. This only needs to be done once, after all of the symtabs and dependencies have been read in. */ scan_file_globals (objfile); - - /* Finish up the debug error message. */ - if (info_verbose) - printf_filtered ("done.\n"); } } diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 8bde26534e3..9942270622d 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -9494,41 +9494,23 @@ dwarf2_psymtab::read_symtab (struct objfile *objfile) struct dwarf2_per_objfile *dwarf2_per_objfile = get_dwarf2_per_objfile (objfile); - if (readin) - { - warning (_("bug: psymtab for %s is already read in."), - filename); - } - else + gdb_assert (!readin); + /* If this psymtab is constructed from a debug-only objfile, the + has_section_at_zero flag will not necessarily be correct. We + can get the correct value for this flag by looking at the data + associated with the (presumably stripped) associated objfile. */ + if (objfile->separate_debug_objfile_backlink) { - if (info_verbose) - { - printf_filtered (_("Reading in symbols for %s..."), - filename); - gdb_flush (gdb_stdout); - } + struct dwarf2_per_objfile *dpo_backlink + = get_dwarf2_per_objfile (objfile->separate_debug_objfile_backlink); - /* If this psymtab is constructed from a debug-only objfile, the - has_section_at_zero flag will not necessarily be correct. We - can get the correct value for this flag by looking at the data - associated with the (presumably stripped) associated objfile. */ - if (objfile->separate_debug_objfile_backlink) - { - struct dwarf2_per_objfile *dpo_backlink - = get_dwarf2_per_objfile (objfile->separate_debug_objfile_backlink); - - dwarf2_per_objfile->has_section_at_zero - = dpo_backlink->has_section_at_zero; - } - - dwarf2_per_objfile->reading_partial_symbols = 0; + dwarf2_per_objfile->has_section_at_zero + = dpo_backlink->has_section_at_zero; + } - psymtab_to_symtab_1 (this); + dwarf2_per_objfile->reading_partial_symbols = 0; - /* Finish up the debug error message. */ - if (info_verbose) - printf_filtered (_("done.\n")); - } + psymtab_to_symtab_1 (this); process_cu_includes (dwarf2_per_objfile); } diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c index 621b314ff99..4b32a5a8b08 100644 --- a/gdb/mdebugread.c +++ b/gdb/mdebugread.c @@ -277,12 +277,6 @@ static const char *mdebug_next_symbol_text (struct objfile *); static void mdebug_read_symtab (legacy_psymtab *self, struct objfile *objfile) { - if (info_verbose) - { - printf_filtered (_("Reading in symbols for %s..."), self->filename); - gdb_flush (gdb_stdout); - } - next_symbol_text_func = mdebug_next_symbol_text; psymtab_to_symtab_1 (objfile, self, self->filename); @@ -290,9 +284,6 @@ mdebug_read_symtab (legacy_psymtab *self, struct objfile *objfile) /* Match with global symbols. This only needs to be done once, after all of the symtabs and dependencies have been read in. */ scan_file_globals (objfile); - - if (info_verbose) - printf_filtered (_("done.\n")); } /* File-level interface functions. */ diff --git a/gdb/psymtab.c b/gdb/psymtab.c index 6a2f7f7202a..6abc829e2ee 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -758,7 +758,18 @@ psymtab_to_symtab (struct objfile *objfile, struct partial_symtab *pst) { scoped_restore decrementer = increment_reading_symtab (); + if (info_verbose) + { + printf_filtered (_("Reading in symbols for %s..."), + pst->filename); + gdb_flush (gdb_stdout); + } + pst->read_symtab (objfile); + + /* Finish up the debug error message. */ + if (info_verbose) + printf_filtered (_("done.\n")); } return pst->compunit_symtab; diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c index 69731a47911..66d6b9adf9d 100644 --- a/gdb/xcoffread.c +++ b/gdb/xcoffread.c @@ -1869,25 +1869,11 @@ xcoff_psymtab_to_symtab_1 (struct objfile *objfile, legacy_psymtab *pst) static void xcoff_read_symtab (legacy_psymtab *self, struct objfile *objfile) { - if (self->readin) - { - fprintf_unfiltered - (gdb_stderr, "Psymtab for %s already read in. Shouldn't happen.\n", - self->filename); - return; - } + gdb_assert (!self->readin); if (((struct symloc *) self->read_symtab_private)->numsyms != 0 || self->number_of_dependencies) { - /* Print the message now, before reading the string table, - to avoid disconcerting pauses. */ - if (info_verbose) - { - printf_filtered ("Reading in symbols for %s...", self->filename); - gdb_flush (gdb_stdout); - } - next_symbol_text_func = xcoff_next_symbol_text; xcoff_psymtab_to_symtab_1 (objfile, self); @@ -1895,10 +1881,6 @@ xcoff_read_symtab (legacy_psymtab *self, struct objfile *objfile) /* Match with global symbols. This only needs to be done once, after all of the symtabs and dependencies have been read in. */ scan_file_globals (objfile); - - /* Finish up the debug error message. */ - if (info_verbose) - printf_filtered ("done.\n"); } } -- 2.30.2