Remove elements from complaint_series

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-23  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-23  Tom Tromey  <tom@tromey.com>

	* gdb.gdb/complaints.exp (test_serial_complaints): Remove.
	(test_short_complaints): Update.
This commit is contained in:
Tom Tromey 2018-05-16 22:23:09 -06:00
parent 2b9496b2b4
commit 43ba33c768
4 changed files with 15 additions and 86 deletions

View File

@ -1,3 +1,10 @@
2018-05-23 Tom Tromey <tom@tromey.com>
* complaints.c (enum complaint_series): Remove FIRST_MESSAGE,
SUBSEQUENT_MESSAGE.
(vcomplaint, clear_complaints): Update.
(symfile_explanations): Remove some messages.
2018-05-23 Tom Tromey <tom@tromey.com>
* complaints.c (internal_complaint): Remove.

View File

@ -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;
}

View File

@ -1,3 +1,8 @@
2018-05-23 Tom Tromey <tom@tromey.com>
* gdb.gdb/complaints.exp (test_serial_complaints): Remove.
(test_short_complaints): Update.
2018-05-22 Pedro Alves <palves@redhat.com>
* gdb.base/remote.exp: Only gdb_start after compiling the

View File

@ -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
}