gdb: add remote_debug_printf
authorSimon Marchi <simon.marchi@polymtl.ca>
Fri, 22 Jan 2021 17:43:27 +0000 (12:43 -0500)
committerSimon Marchi <simon.marchi@polymtl.ca>
Fri, 22 Jan 2021 17:43:27 +0000 (12:43 -0500)
commit2189c312652ae4f66eaf55b306cb64d4c1678636
treeca983ba85c1fff86eac62e83883f3b55c4f49cab
parent02349803fc5a7941b4e23d1580bd8b600d6be1bd
gdb: add remote_debug_printf

This is the next in the new-style debug macro series.

For this one, I decided to omit the function name from the "Sending packet" /
"Packet received" kind of prints, just because it's not very useful in that
context and hinders readability more than anything else.  This is completely
arbitrary.

This is with:

  [remote] putpkt_binary: Sending packet: $qTStatus#49...
  [remote] getpkt_or_notif_sane_1: Packet received: T0;tnotrun:0;tframes:0;tcreated:0;tfree:500000;tsize:500000;circular:0;disconn:0;starttime:0;stoptime:0;username:;notes::

and without:

  [remote] Sending packet: $qTStatus#49...
  [remote] Packet received: T0;tnotrun:0;tframes:0;tcreated:0;tfree:500000;tsize:500000;circular:0;disconn:0;starttime:0;stoptime:0;username:;notes::

A difference is that previously, the query packet and its reply would be
printed on the same line, like this:

  Sending packet: $qTStatus#49...Packet received: T0;tnotrun:0;tframes:0;tcreated:0;tfree:500000;tsize:500000;circular:0;disconn:0;starttime:0;stoptime:0;username:;notes::

Now, they are printed on two lines, since each remote_debug_printf{,_nofunc}
prints its own complete message including an end of line.  It's probably
a matter of taste, but I prefer the two-line version, it's easier to
follow, especially when the query packet is long.

As a result, lib/range-stepping-support.exp needs to be updated, as it
currently expects the vCont packet and the reply to be on the same line.
I think it's sufficient in that context to just expect the vCont packet
and not the reply, since the goal is just to count how many vCont;r GDB
sends.

gdb/ChangeLog:

* remote.h (remote_debug_printf): New.
(remote_debug_printf_nofunc): New.
(REMOTE_SCOPED_DEBUG_ENTER_EXIT): New.
* remote.c: Use above macros throughout file.

gdbsupport/ChangeLog:

* common-debug.h (debug_prefixed_printf_cond_nofunc): New.
* common-debug.c (debug_prefixed_vprintf): Handle a nullptr
func.

gdb/testsuite/ChangeLog:

* lib/range-stepping-support.exp (exec_cmd_expect_vCont_count):
Adjust to "set debug remote" changes.

Change-Id: Ica6dead50d3f82e855c7d763f707cef74bed9fee
gdb/ChangeLog
gdb/remote.c
gdb/remote.h
gdb/testsuite/ChangeLog
gdb/testsuite/lib/range-stepping-support.exp
gdbsupport/ChangeLog
gdbsupport/common-debug.cc
gdbsupport/common-debug.h