Fix misreporting of omitted bytes for large remote packets

In remote.c, when the output of "set debug remote" is truncated, the
number of characters reported is incorrect.  What is reported is the
number of characters added by the quoting, not the number of characters
that were truncated.

gdb/ChangeLog:

	* remote.c (putpkt_binary): Fix omitted bytes reporting.
	(getpkt_or_notif_sane_1): Likewise.
This commit is contained in:
Simon Marchi 2018-03-08 19:00:03 -05:00
parent f6d8ae8f07
commit 567a3e54d2
2 changed files with 11 additions and 10 deletions

View File

@ -1,3 +1,8 @@
2018-03-08 Simon Marchi <simon.marchi@ericsson.com>
* remote.c (putpkt_binary): Fix omitted bytes reporting.
(getpkt_or_notif_sane_1): Likewise.
2018-03-08 Simon Marchi <simon.marchi@polymtl.ca>
* build-id.c (build_id_to_debug_bfd): Use std::string.

View File

@ -8720,11 +8720,9 @@ putpkt_binary (const char *buf, int cnt)
fprintf_unfiltered (gdb_stdlog, "Sending packet: %s", str.c_str ());
if (str.length () > REMOTE_DEBUG_MAX_CHAR)
{
fprintf_unfiltered (gdb_stdlog, "[%zu bytes omitted]",
str.length () - REMOTE_DEBUG_MAX_CHAR);
}
if (len > REMOTE_DEBUG_MAX_CHAR)
fprintf_unfiltered (gdb_stdlog, "[%d bytes omitted]",
len - REMOTE_DEBUG_MAX_CHAR);
fprintf_unfiltered (gdb_stdlog, "...");
@ -9157,11 +9155,9 @@ getpkt_or_notif_sane_1 (char **buf, long *sizeof_buf, int forever,
fprintf_unfiltered (gdb_stdlog, "Packet received: %s",
str.c_str ());
if (str.length () > REMOTE_DEBUG_MAX_CHAR)
{
fprintf_unfiltered (gdb_stdlog, "[%zu bytes omitted]",
str.length () - REMOTE_DEBUG_MAX_CHAR);
}
if (val > REMOTE_DEBUG_MAX_CHAR)
fprintf_unfiltered (gdb_stdlog, "[%d bytes omitted]",
val - REMOTE_DEBUG_MAX_CHAR);
fprintf_unfiltered (gdb_stdlog, "\n");
}