From patchwork Mon Oct 28 02:03:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Simon Marchi (Code Review)" X-Patchwork-Id: 35386 Received: (qmail 70619 invoked by alias); 28 Oct 2019 02:03:32 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 70551 invoked by uid 89); 28 Oct 2019 02:03:31 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-20.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3 autolearn=ham version=3.3.1 spammy=disconcerting, Finish, Reading X-HELO: mx1.osci.io Received: from polly.osci.io (HELO mx1.osci.io) (8.43.85.229) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 28 Oct 2019 02:03:29 +0000 Received: by mx1.osci.io (Postfix, from userid 994) id BF49720E5D; Sun, 27 Oct 2019 22:03:27 -0400 (EDT) Received: from gnutoolchain-gerrit.osci.io (gnutoolchain-gerrit.osci.io [8.43.85.239]) by mx1.osci.io (Postfix) with ESMTP id 69005211EF for ; Sun, 27 Oct 2019 22:03:18 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by gnutoolchain-gerrit.osci.io (Postfix) with ESMTP id 4781920AF6 for ; Sun, 27 Oct 2019 22:03:18 -0400 (EDT) X-Gerrit-PatchSet: 1 Date: Sun, 27 Oct 2019 22:03:18 -0400 From: "Tom Tromey (Code Review)" To: gdb-patches@sourceware.org Message-ID: Auto-Submitted: auto-generated X-Gerrit-MessageType: newchange Subject: [review] Consolidate psymtab "Reading" messages X-Gerrit-Change-Id: I795be9710d42708299bb7b44972cffd27aec9413 X-Gerrit-Change-Number: 380 X-Gerrit-ChangeURL: X-Gerrit-Commit: 1a52e226dca8386aa85b7e351433e8756535012a References: Reply-To: tromey@sourceware.org, gdb-patches@sourceware.org MIME-Version: 1.0 Content-Disposition: inline User-Agent: Gerrit/3.0.3-74-g460fb0f7e9 Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/380 ...................................................................... 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 2019-10-27 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 --- M gdb/ChangeLog M gdb/dbxread.c M gdb/dwarf2read.c M gdb/mdebugread.c M gdb/psymtab.c M gdb/xcoffread.c 6 files changed, 36 insertions(+), 78 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 39585f0..0aca3d3 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,15 @@ 2019-10-27 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. + +2019-10-27 Tom Tromey + * xcoffread.c (this_symtab_psymtab, read_xcoff_symtab) (xcoff_psymtab_to_symtab_1, xcoff_read_symtab) (xcoff_start_psymtab, xcoff_end_psymtab, scan_xcoff_symtab): Use diff --git a/gdb/dbxread.c b/gdb/dbxread.c index ce04951..a288071 100644 --- a/gdb/dbxread.c +++ b/gdb/dbxread.c @@ -2119,24 +2119,10 @@ 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; { @@ -2157,10 +2143,6 @@ /* 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 2408098..9209a4d 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -9472,41 +9472,23 @@ struct dwarf2_per_objfile *dwarf2_per_objfile = get_dwarf2_per_objfile (objfile); - if (readin) + 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) { - warning (_("bug: psymtab for %s is already read in."), - filename); + 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; } - else - { - if (info_verbose) - { - printf_filtered (_("Reading in symbols for %s..."), - filename); - gdb_flush (gdb_stdout); - } - /* 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->reading_partial_symbols = 0; - dwarf2_per_objfile->has_section_at_zero - = dpo_backlink->has_section_at_zero; - } - - dwarf2_per_objfile->reading_partial_symbols = 0; - - psymtab_to_symtab_1 (this); - - /* 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 cf10a25..6fde729 100644 --- a/gdb/mdebugread.c +++ b/gdb/mdebugread.c @@ -277,12 +277,6 @@ 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 @@ /* 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 f0d1237..ee7f9dc 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -759,7 +759,18 @@ { 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 f35e74a..9a63af6 100644 --- a/gdb/xcoffread.c +++ b/gdb/xcoffread.c @@ -1874,25 +1874,11 @@ 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); @@ -1900,10 +1886,6 @@ /* 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"); } }