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
This commit is contained in:
Simon Marchi 2020-10-31 09:01:25 -04:00
parent 19dd0ae5e7
commit 17417fb0ec
9 changed files with 56 additions and 79 deletions

View file

@ -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> 2020-10-31 Simon Marchi <simon.marchi@polymtl.ca>
* configure: Re-generate. * configure: Re-generate.

View file

@ -104,17 +104,6 @@ static int infrun_is_async = -1;
/* See infrun.h. */ /* 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 void
infrun_async (int enable) 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); 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. */ /* Support for disabling address space randomization. */
bool disable_randomization = true; bool disable_randomization = true;
@ -4667,10 +4645,10 @@ stop_all_threads (void)
target_thread_events (false); 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. */ name. */
if (debug_infrun) 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 /* Request threads to stop, and then wait for the stops. Because

View file

@ -31,34 +31,18 @@ struct thread_info;
/* True if we are debugging run control. */ /* True if we are debugging run control. */
extern unsigned int debug_infrun; extern unsigned int debug_infrun;
/* Print an "infrun" debug statement. Should be used through /* Print an "infrun" debug statement. */
infrun_debug_printf. */
void ATTRIBUTE_PRINTF (2, 3) infrun_debug_printf_1
(const char *func_name, const char *fmt, ...);
#define infrun_debug_printf(fmt, ...) \ #define infrun_debug_printf(fmt, ...) \
do \ debug_prefixed_printf ("infrun", __func__, fmt, ##__VA_ARGS__)
{ \
if (debug_infrun) \
infrun_debug_printf_1 (__func__, fmt, ##__VA_ARGS__); \
} \
while (0)
/* True if we are debugging displaced stepping. */ /* True if we are debugging displaced stepping. */
extern bool debug_displaced; extern bool debug_displaced;
/* Print a "displaced" debug statement. Should be used through /* Print a "displaced" debug statement. */
displaced_debug_printf. */
void ATTRIBUTE_PRINTF (2, 3) displaced_debug_printf_1
(const char *func_name, const char *fmt, ...);
#define displaced_debug_printf(fmt, ...) \ #define displaced_debug_printf(fmt, ...) \
do \ debug_prefixed_printf ("displaced", __func__, fmt, ##__VA_ARGS__)
{ \
if (debug_displaced) \
displaced_debug_printf_1 (__func__, fmt, ##__VA_ARGS__); \
} \
while (0)
/* Nonzero if we want to give control to the user when we're notified /* Nonzero if we want to give control to the user when we're notified
of shared library events by the dynamic linker. */ of shared library events by the dynamic linker. */

View file

@ -199,24 +199,10 @@ show_debug_linux_nat (struct ui_file *file, int from_tty,
value); value);
} }
/* Print a debug statement. Should be used through linux_nat_debug_printf. */ /* Print a linux-nat debug statement. */
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);
}
#define linux_nat_debug_printf(fmt, ...) \ #define linux_nat_debug_printf(fmt, ...) \
do \ debug_prefixed_printf ("linux-nat", __func__, fmt, ##__VA_ARGS__)
{ \
if (debug_linux_nat) \
linux_nat_debug_printf_1 (__func__, fmt, ##__VA_ARGS__); \
} \
while (0)
struct simple_pid_list struct simple_pid_list
{ {

View file

@ -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> 2020-10-31 Simon Marchi <simon.marchi@polymtl.ca>
* common.m4: Replace AC_TRY_COMPILE with AC_COMPILE_IFELSE + * common.m4: Replace AC_TRY_COMPILE with AC_COMPILE_IFELSE +

View file

@ -39,8 +39,21 @@ debug_printf (const char *fmt, ...)
/* See gdbsupport/common-debug.h. */ /* See gdbsupport/common-debug.h. */
void void
debug_prefixed_vprintf (const char *module, const char *func, const char *format, debug_prefixed_printf (const char *module, const char *func,
va_list args) 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_printf ("[%s] %s: ", module, func);
debug_vprintf (format, args); debug_vprintf (format, args);

View file

@ -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 /* Print a debug statement prefixed with the module and function name, and
with a newline at the end. */ 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 extern void ATTRIBUTE_PRINTF (3, 0) debug_prefixed_vprintf
(const char *module, const char *func, const char *format, va_list args); (const char *module, const char *func, const char *format, va_list args);

View file

@ -912,14 +912,3 @@ poll_timers (void)
return 0; 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);
}

View file

@ -126,26 +126,26 @@ enum class debug_event_loop_kind
/* True if we are printing event loop debug statements. */ /* True if we are printing event loop debug statements. */
extern debug_event_loop_kind debug_event_loop; extern debug_event_loop_kind debug_event_loop;
/* Print an "event loop" debug statement. Should be used through /* Print an "event loop" debug statement. */
event_loop_debug_printf. */
void ATTRIBUTE_PRINTF (2, 3) event_loop_debug_printf_1
(const char *func_name, const char *fmt, ...);
#define event_loop_debug_printf(fmt, ...) \ #define event_loop_debug_printf(fmt, ...) \
do \ do \
{ \ { \
if (debug_event_loop != debug_event_loop_kind::OFF) \ 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) 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, ...) \ #define event_loop_ui_debug_printf(is_ui, fmt, ...) \
do \ do \
{ \ { \
if (debug_event_loop == debug_event_loop_kind::ALL \ if (debug_event_loop == debug_event_loop_kind::ALL \
|| (debug_event_loop == debug_event_loop_kind::ALL_EXCEPT_UI \ || (debug_event_loop == debug_event_loop_kind::ALL_EXCEPT_UI \
&& !is_ui)) \ && !is_ui)) \
event_loop_debug_printf_1 (__func__, fmt, ##__VA_ARGS__); \ debug_prefixed_printf ("event-loop", __func__, fmt, ##__VA_ARGS__); \
} \ } \
while (0) while (0)