This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFA 2/9] Remove elements from complaint_series
- From: Tom Tromey <tom at tromey dot com>
- To: gdb-patches at sourceware dot org
- Cc: Tom Tromey <tom at tromey dot com>
- Date: Mon, 21 May 2018 23:06:57 -0600
- Subject: [RFA 2/9] Remove elements from complaint_series
- References: <20180522050704.10845-1-tom@tromey.com>
I couldn't find a way to get complaints to use a couple of cases, and
the difference between the actual printed output for these cases was
minimal anyway. So, this patch removes a couple of constants from
complaint_series, plus the associated code.
gdb/ChangeLog
2018-05-21 Tom Tromey <tom@tromey.com>
* complaints.c (enum complaint_series): Remove FIRST_MESSAGE,
SUBSEQUENT_MESSAGE.
(vcomplaint, clear_complaints): Update.
(symfile_explanations): Remove some messages.
gdb/testsuite/ChangeLog
2018-05-21 Tom Tromey <tom@tromey.com>
* gdb.gdb/complaints.exp (test_serial_complaints): Remove.
(test_short_complaints): Update.
---
gdb/ChangeLog | 7 +++++
gdb/complaints.c | 60 ++----------------------------------
gdb/testsuite/ChangeLog | 5 +++
gdb/testsuite/gdb.gdb/complaints.exp | 29 -----------------
4 files changed, 15 insertions(+), 86 deletions(-)
diff --git a/gdb/complaints.c b/gdb/complaints.c
index 9e5df396eb..71d36e6326 100644
--- a/gdb/complaints.c
+++ b/gdb/complaints.c
@@ -29,17 +29,9 @@ enum complaint_series {
/* Isolated self explanatory message. */
ISOLATED_MESSAGE,
- /* First message of a series, includes an explanation. */
- FIRST_MESSAGE,
-
/* First message of a series, but does not need to include any sort
of explanation. */
SHORT_FIRST_MESSAGE,
-
- /* Subsequent message of a series that needs no explanation (the
- user already knows we have a problem so we can just state our
- piece). */
- SUBSEQUENT_MESSAGE
};
/* Structure to manage complaints about symbol file contents. */
@@ -82,8 +74,6 @@ static struct complain complaint_sentinel;
static struct explanation symfile_explanations[] = {
{ "During symbol reading, ", "." },
- { "During symbol reading...", "..."},
- { "", "..."},
{ "", "..."},
{ NULL, NULL }
};
@@ -169,10 +159,7 @@ vcomplaint (struct complaints **c, const char *file,
if (complaint->counter > stop_whining)
return;
- if (info_verbose)
- series = SUBSEQUENT_MESSAGE;
- else
- series = complaints->series;
+ series = complaints->series;
/* Pass 'fmt' instead of 'complaint->fmt' to printf-like callees
from here on, to avoid "format string is not a string literal"
@@ -194,16 +181,13 @@ vcomplaint (struct complaints **c, const char *file,
{
std::string msg = string_vprintf (fmt, args);
wrap_here ("");
- if (series != SUBSEQUENT_MESSAGE)
- begin_line ();
+ begin_line ();
/* XXX: i18n */
fprintf_filtered (gdb_stderr, "%s%s%s",
complaints->explanation[series].prefix,
msg.c_str (),
complaints->explanation[series].postfix);
- /* Force a line-break after any isolated message. For the
- other cases, clear_complaints() takes care of any missing
- trailing newline, the wrap_here() is just a hint. */
+ /* Force a line-break after any isolated message. */
if (series == ISOLATED_MESSAGE)
/* It would be really nice to use begin_line() here.
Unfortunately that function doesn't track GDB_STDERR and
@@ -215,19 +199,6 @@ vcomplaint (struct complaints **c, const char *file,
}
}
- switch (series)
- {
- case ISOLATED_MESSAGE:
- break;
- case FIRST_MESSAGE:
- complaints->series = SUBSEQUENT_MESSAGE;
- break;
- case SUBSEQUENT_MESSAGE:
- case SHORT_FIRST_MESSAGE:
- complaints->series = SUBSEQUENT_MESSAGE;
- break;
- }
-
/* If GDB dumps core, we'd like to see the complaints first.
Presumably GDB will not be sending so many complaints that this
becomes a performance hog. */
@@ -264,33 +235,8 @@ clear_complaints (struct complaints **c, int less_verbose, int noisy)
p->counter = 0;
}
- switch (complaints->series)
- {
- case FIRST_MESSAGE:
- /* Haven't yet printed anything. */
- break;
- case SHORT_FIRST_MESSAGE:
- /* Haven't yet printed anything. */
- break;
- case ISOLATED_MESSAGE:
- /* The code above, always forces a line-break. No need to do it
- here. */
- break;
- case SUBSEQUENT_MESSAGE:
- /* It would be really nice to use begin_line() here.
- Unfortunately that function doesn't track GDB_STDERR and
- consequently will sometimes supress a line when it
- shouldn't. */
- fputs_unfiltered ("\n", gdb_stderr);
- break;
- default:
- internal_error (__FILE__, __LINE__, _("bad switch"));
- }
-
if (!less_verbose)
complaints->series = ISOLATED_MESSAGE;
- else if (!noisy)
- complaints->series = FIRST_MESSAGE;
else
complaints->series = SHORT_FIRST_MESSAGE;
}
diff --git a/gdb/testsuite/gdb.gdb/complaints.exp b/gdb/testsuite/gdb.gdb/complaints.exp
index 56c3003b53..1d532b7fd6 100644
--- a/gdb/testsuite/gdb.gdb/complaints.exp
+++ b/gdb/testsuite/gdb.gdb/complaints.exp
@@ -85,29 +85,6 @@ proc test_initial_complaints { } {
return 0
}
-proc test_serial_complaints { } {
- gdb_test_exact "call clear_complaints (&symfile_complaints, 1, 0)" "" "serial start"
-
- # Prime the system
- test_complaint \
- "call complaint_internal (&symfile_complaints, \"serial line 1\")" \
- "During symbol reading...serial line 1..." \
- "serial line 1"
-
- # Add a second complaint, expect it
- test_complaint \
- "call complaint_internal (&symfile_complaints, \"serial line 2\")" \
- "serial line 2..." \
- "serial line 2"
-
- gdb_test_stdio "call clear_complaints (&symfile_complaints, 1, 0)" \
- "\r\n" \
- "" \
- "serial end"
-
- return 0
-}
-
# For short complaints, all are the same
proc test_short_complaints { } {
@@ -125,11 +102,6 @@ proc test_short_complaints { } {
"short line 2..." \
"short line 2"
- gdb_test_stdio "call clear_complaints (&symfile_complaints, 1, 0)" \
- "\r\n" \
- "" \
- "short end"
-
return 0
}
@@ -173,7 +145,6 @@ proc test_empty_complaints { } {
do_self_tests captured_command_loop {
test_initial_complaints
- test_serial_complaints
test_short_complaints
test_empty_complaints
}
--
2.13.6