From patchwork Sun Jan 26 23:41:10 2020 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: 37561 Received: (qmail 42262 invoked by alias); 26 Jan 2020 23:41:28 -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 42068 invoked by uid 89); 26 Jan 2020 23:41:27 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-21.9 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=consolidate, Consolidate, Reading, sk:separat 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; Sun, 26 Jan 2020 23:41:24 +0000 Received: by mx1.osci.io (Postfix, from userid 994) id 04F67203A6; Sun, 26 Jan 2020 18:41:22 -0500 (EST) Received: from gnutoolchain-gerrit.osci.io (gnutoolchain-gerrit.osci.io [8.43.85.239]) by mx1.osci.io (Postfix) with ESMTP id B954E20A70; Sun, 26 Jan 2020 18:41:10 -0500 (EST) Received: from localhost (localhost [127.0.0.1]) by gnutoolchain-gerrit.osci.io (Postfix) with ESMTP id AFDE120AF7; Sun, 26 Jan 2020 18:41:10 -0500 (EST) X-Gerrit-PatchSet: 2 Date: Sun, 26 Jan 2020 18:41:10 -0500 From: "Sourceware to Gerrit sync (Code Review)" To: Tom Tromey , gdb-patches@sourceware.org Auto-Submitted: auto-generated X-Gerrit-MessageType: merged Subject: [pushed] Consolidate psymtab "Reading" messages X-Gerrit-Change-Id: I795be9710d42708299bb7b44972cffd27aec9413 X-Gerrit-Change-Number: 380 X-Gerrit-ChangeURL: X-Gerrit-Commit: 077cbab270376098e90c841690f9e4439b63d3d4 In-Reply-To: References: Reply-To: noreply@gnutoolchain-gerrit.osci.io, tromey@sourceware.org, gdb-patches@sourceware.org MIME-Version: 1.0 Content-Disposition: inline User-Agent: Gerrit/3.0.3-79-g83ff7f88f1 Message-Id: <20200126234110.AFDE120AF7@gnutoolchain-gerrit.osci.io> Sourceware to Gerrit sync has submitted this change. 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 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 --- 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 8fcb24e..ed3b97b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,15 @@ 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) (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 64387c6..9d8d938 100644 --- a/gdb/dbxread.c +++ b/gdb/dbxread.c @@ -2117,24 +2117,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; { @@ -2155,10 +2141,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 8bde265..9942270 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -9494,41 +9494,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 621b314..4b32a5a 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 6a2f7f7..6abc829 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -758,7 +758,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 69731a4..66d6b9a 100644 --- a/gdb/xcoffread.c +++ b/gdb/xcoffread.c @@ -1869,25 +1869,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); @@ -1895,10 +1881,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"); } }