[binutils-gdb] gdb, gdbsupport: add debug_prefixed_printf, remove boilerplate functions

Simon Marchi simark@sourceware.org
Sat Oct 31 13:17:12 GMT 2020


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=17417fb0ec9842de1774e1e76f1f11c00cdafc47

commit 17417fb0ec9842de1774e1e76f1f11c00cdafc47
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date:   Sat Oct 31 09:01:25 2020 -0400

    gdb, gdbsupport: add debug_prefixed_printf, remove boilerplate functions
    
    The *_debug_print_1 functions are all very similar, the only difference
    being the subsystem name.  Remove them all and make the logging macros
    use a new debug_prefixed_printf function directly.
    
    gdb/ChangeLog:
    
            * infrun.c (infrun_debug_printf_1): Remove.
            (displaced_debug_printf_1): Remove.
            (stop_all_threads): Use debug_prefixed_printf.
            * infrun.h (infrun_debug_printf_1): Remove.
            (infrun_debug_printf): Use debug_prefixed_printf.
            (displaced_debug_printf_1): Remove.
            (displaced_debug_printf): Use debug_prefixed_printf.
            * linux-nat.c (linux_nat_debug_printf_1): Remove.
            (linux_nat_debug_printf): Use debug_prefixed_printf.
    
    gdbsupport/ChangeLog:
    
            * common-debug.cc (debug_prefixed_printf): New.
            * common-debug.h (debug_prefixed_printf): New declaration.
            * event-loop.cc (event_loop_debug_printf_1): Remove.
            * event-loop.h (event_loop_debug_printf_1): Remove.
            (event_loop_debug_printf): Use debug_prefixed_printf.
            (event_loop_ui_debug_printf): Use debug_prefixed_printf.
    
    Change-Id: Ib323087c7257f0060121d302055c41eb64aa60c6

Diff:
---
 gdb/ChangeLog              | 12 ++++++++++++
 gdb/infrun.c               | 26 ++------------------------
 gdb/infrun.h               | 24 ++++--------------------
 gdb/linux-nat.c            | 18 ++----------------
 gdbsupport/ChangeLog       |  9 +++++++++
 gdbsupport/common-debug.cc | 17 +++++++++++++++--
 gdbsupport/common-debug.h  |  6 ++++++
 gdbsupport/event-loop.cc   | 11 -----------
 gdbsupport/event-loop.h    | 12 ++++++------
 9 files changed, 56 insertions(+), 79 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 91541795e26..78ab40b2a08 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+2020-10-31  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* infrun.c (infrun_debug_printf_1): Remove.
+	(displaced_debug_printf_1): Remove.
+	(stop_all_threads): Use debug_prefixed_printf.
+	* infrun.h (infrun_debug_printf_1): Remove.
+	(infrun_debug_printf): Use debug_prefixed_printf.
+	(displaced_debug_printf_1): Remove.
+	(displaced_debug_printf): Use debug_prefixed_printf.
+	* linux-nat.c (linux_nat_debug_printf_1): Remove.
+	(linux_nat_debug_printf): Use debug_prefixed_printf.
+
 2020-10-31  Simon Marchi  <simon.marchi@polymtl.ca>
 
 	* configure: Re-generate.
diff --git a/gdb/infrun.c b/gdb/infrun.c
index de2437fbac3..53d7209c69f 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -104,17 +104,6 @@ static int infrun_is_async = -1;
 
 /* See infrun.h.  */
 
-void
-infrun_debug_printf_1 (const char *func_name, const char *fmt, ...)
-{
-  va_list ap;
-  va_start (ap, fmt);
-  debug_prefixed_vprintf ("infrun", func_name, fmt, ap);
-  va_end (ap);
-}
-
-/* See infrun.h.  */
-
 void
 infrun_async (int enable)
 {
@@ -179,17 +168,6 @@ show_debug_infrun (struct ui_file *file, int from_tty,
   fprintf_filtered (file, _("Inferior debugging is %s.\n"), value);
 }
 
-/* See infrun.h.  */
-
-void
-displaced_debug_printf_1 (const char *func_name, const char *fmt, ...)
-{
-  va_list ap;
-  va_start (ap, fmt);
-  debug_prefixed_vprintf ("displaced", func_name, fmt, ap);
-  va_end (ap);
-}
-
 /* Support for disabling address space randomization.  */
 
 bool disable_randomization = true;
@@ -4667,10 +4645,10 @@ stop_all_threads (void)
 	  target_thread_events (false);
 	}
 
-      /* Use infrun_debug_printf_1 directly to get a meaningful function
+      /* Use debug_prefixed_printf directly to get a meaningful function
          name.  */
       if (debug_infrun)
-	infrun_debug_printf_1 ("stop_all_threads", "done");
+	debug_prefixed_printf ("infrun", "stop_all_threads", "done");
     };
 
   /* Request threads to stop, and then wait for the stops.  Because
diff --git a/gdb/infrun.h b/gdb/infrun.h
index 4fc1bf94588..93b8aeb8eaa 100644
--- a/gdb/infrun.h
+++ b/gdb/infrun.h
@@ -31,34 +31,18 @@ struct thread_info;
 /* True if we are debugging run control.  */
 extern unsigned int debug_infrun;
 
-/* Print an "infrun" debug statement.  Should be used through
-   infrun_debug_printf.  */
-void ATTRIBUTE_PRINTF (2, 3) infrun_debug_printf_1
-  (const char *func_name, const char *fmt, ...);
+/* Print an "infrun" debug statement.  */
 
 #define infrun_debug_printf(fmt, ...) \
-  do \
-    { \
-      if (debug_infrun) \
-	infrun_debug_printf_1 (__func__, fmt, ##__VA_ARGS__); \
-    } \
-  while (0)
+  debug_prefixed_printf ("infrun", __func__, fmt, ##__VA_ARGS__)
 
 /* True if we are debugging displaced stepping.  */
 extern bool debug_displaced;
 
-/* Print a "displaced" debug statement.  Should be used through
-   displaced_debug_printf.  */
-void ATTRIBUTE_PRINTF (2, 3) displaced_debug_printf_1
-  (const char *func_name, const char *fmt, ...);
+/* Print a "displaced" debug statement.  */
 
 #define displaced_debug_printf(fmt, ...) \
-  do \
-    { \
-      if (debug_displaced) \
-	displaced_debug_printf_1 (__func__, fmt, ##__VA_ARGS__); \
-    } \
-  while (0)
+  debug_prefixed_printf ("displaced", __func__, fmt, ##__VA_ARGS__)
 
 /* Nonzero if we want to give control to the user when we're notified
    of shared library events by the dynamic linker.  */
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
index 24f971680ca..d79ea842c2d 100644
--- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c
@@ -199,24 +199,10 @@ show_debug_linux_nat (struct ui_file *file, int from_tty,
 		    value);
 }
 
-/* Print a debug statement.  Should be used through linux_nat_debug_printf.  */
-
-static void ATTRIBUTE_PRINTF (2, 3)
-linux_nat_debug_printf_1 (const char *func_name, const char *fmt, ...)
-{
-  va_list ap;
-  va_start (ap, fmt);
-  debug_prefixed_vprintf ("linux-nat", func_name, fmt, ap);
-  va_end (ap);
-}
+/* Print a linux-nat debug statement.  */
 
 #define linux_nat_debug_printf(fmt, ...) \
-  do \
-    { \
-      if (debug_linux_nat) \
-	linux_nat_debug_printf_1 (__func__, fmt, ##__VA_ARGS__); \
-    } \
-  while (0)
+  debug_prefixed_printf ("linux-nat", __func__, fmt, ##__VA_ARGS__)
 
 struct simple_pid_list
 {
diff --git a/gdbsupport/ChangeLog b/gdbsupport/ChangeLog
index 3d673d481b9..5cfb6108c6a 100644
--- a/gdbsupport/ChangeLog
+++ b/gdbsupport/ChangeLog
@@ -1,3 +1,12 @@
+2020-10-31  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* common-debug.cc (debug_prefixed_printf): New.
+	* common-debug.h (debug_prefixed_printf): New declaration.
+	* event-loop.cc (event_loop_debug_printf_1): Remove.
+	* event-loop.h (event_loop_debug_printf_1): Remove.
+	(event_loop_debug_printf): Use debug_prefixed_printf.
+	(event_loop_ui_debug_printf): Use debug_prefixed_printf.
+
 2020-10-31  Simon Marchi  <simon.marchi@polymtl.ca>
 
 	* common.m4: Replace AC_TRY_COMPILE with AC_COMPILE_IFELSE +
diff --git a/gdbsupport/common-debug.cc b/gdbsupport/common-debug.cc
index b8fd133159f..38f6023f497 100644
--- a/gdbsupport/common-debug.cc
+++ b/gdbsupport/common-debug.cc
@@ -39,8 +39,21 @@ debug_printf (const char *fmt, ...)
 /* See gdbsupport/common-debug.h.  */
 
 void
-debug_prefixed_vprintf (const char *module, const char *func, const char *format,
-			va_list args)
+debug_prefixed_printf (const char *module, const char *func,
+		       const char *format, ...)
+{
+  va_list ap;
+
+  va_start (ap, format);
+  debug_prefixed_vprintf (module, func, format, ap);
+  va_end (ap);
+}
+
+/* See gdbsupport/common-debug.h.  */
+
+void
+debug_prefixed_vprintf (const char *module, const char *func,
+			const char *format, va_list args)
 {
   debug_printf ("[%s] %s: ", module, func);
   debug_vprintf (format, args);
diff --git a/gdbsupport/common-debug.h b/gdbsupport/common-debug.h
index afb427e1800..f9ddccab063 100644
--- a/gdbsupport/common-debug.h
+++ b/gdbsupport/common-debug.h
@@ -41,6 +41,12 @@ extern void debug_vprintf (const char *format, va_list ap)
 /* Print a debug statement prefixed with the module and function name, and
    with a newline at the end.  */
 
+extern void ATTRIBUTE_PRINTF (3, 4) debug_prefixed_printf
+  (const char *module, const char *func, const char *format, ...);
+
+/* Print a debug statement prefixed with the module and function name, and
+   with a newline at the end.  */
+
 extern void ATTRIBUTE_PRINTF (3, 0) debug_prefixed_vprintf
   (const char *module, const char *func, const char *format, va_list args);
 
diff --git a/gdbsupport/event-loop.cc b/gdbsupport/event-loop.cc
index 94941580d6a..21c48ca0359 100644
--- a/gdbsupport/event-loop.cc
+++ b/gdbsupport/event-loop.cc
@@ -912,14 +912,3 @@ poll_timers (void)
 
   return 0;
 }
-
-/* See event-loop.h.  */
-
-void
-event_loop_debug_printf_1 (const char *func_name, const char *fmt, ...)
-{
-  va_list args;
-  va_start (args, fmt);
-  debug_prefixed_vprintf ("event-loop", func_name, fmt, args);
-  va_end (args);
-}
diff --git a/gdbsupport/event-loop.h b/gdbsupport/event-loop.h
index c29d6a86123..68808997364 100644
--- a/gdbsupport/event-loop.h
+++ b/gdbsupport/event-loop.h
@@ -126,26 +126,26 @@ enum class debug_event_loop_kind
 /* True if we are printing event loop debug statements.  */
 extern debug_event_loop_kind debug_event_loop;
 
-/* Print an "event loop" debug statement.  Should be used through
-   event_loop_debug_printf.  */
-void ATTRIBUTE_PRINTF (2, 3) event_loop_debug_printf_1
-  (const char *func_name, const char *fmt, ...);
+/* Print an "event loop" debug statement.  */
 
 #define event_loop_debug_printf(fmt, ...) \
   do \
     { \
       if (debug_event_loop != debug_event_loop_kind::OFF) \
-	event_loop_debug_printf_1 (__func__, fmt, ##__VA_ARGS__); \
+	debug_prefixed_printf ("event-loop", __func__, fmt, ##__VA_ARGS__); \
     } \
   while (0)
 
+/* Print an "event loop" debug statement that is know to come from a UI-related
+   event (e.g. calling the event handler for the fd of the CLI).  */
+
 #define event_loop_ui_debug_printf(is_ui, fmt, ...) \
   do \
     { \
       if (debug_event_loop == debug_event_loop_kind::ALL \
 	  || (debug_event_loop == debug_event_loop_kind::ALL_EXCEPT_UI \
 	      && !is_ui)) \
-	event_loop_debug_printf_1 (__func__, fmt, ##__VA_ARGS__); \
+	debug_prefixed_printf ("event-loop", __func__, fmt, ##__VA_ARGS__); \
     } \
   while (0)


More information about the Gdb-cvs mailing list