gdb: add infrun_debug_printf macro

Introduce this macro to print debug statements in the infrun.c file,
same idea as what was done in 9327494e0e ("gdb: add
linux_nat_debug_printf macro").

Although in this case, there are places outside infrun.c that print
debug statements if debug_infrun is set.  So the macro has to be
declared in the header file, so that it can be used in these other
files.

Note one special case.  In stop_all_threads, I've used an explicit

    if (debug_infrun)
      infrun_debug_printf_1 ("stop_all_threads", "done");

for the message in the SCOPE_EXIT.  Otherwise, the message appears like
this:

  [infrun] operator(): done

Until we find a better solution for extracting a meaningful function
name for lambda functions, I think it's fine to handle these special
cases manually, they are quite rare.

Some tests need to be updated, because they rely on some infrun debug
statements.

gdb/ChangeLog:

	* infrun.h (infrun_debug_printf_1): New function declaration.
	(infrun_debug_printf): New macro.
	* infrun.c (infrun_debug_printf_1): Use infrun_debug_printf
	throughout.
	(infrun_debug_printf): New function.
	* breakpoint.c (should_be_inserted): Use infrun_debug_printf.
	(handle_jit_event): Likewise.

gdb/testsuite/ChangeLog:

	* gdb.base/gdb-sigterm.exp (do_test): Update expected regexp.
	* gdb.threads/signal-while-stepping-over-bp-other-thread.exp:
	Likewise.
	* gdb.threads/stepi-random-signal.exp: Likewise.

Change-Id: I66433c8a9caa64c8525ab57c593022b9d1956d5c
This commit is contained in:
Simon Marchi
2020-08-24 15:49:46 -04:00
committed by Simon Marchi
parent 0f55320bc4
commit 1eb8556f5a
8 changed files with 298 additions and 533 deletions

View File

@@ -2035,13 +2035,8 @@ should_be_inserted (struct bp_location *bl)
&& !(bl->owner->type == bp_single_step
&& thread_is_stepping_over_breakpoint (bl->owner->thread)))
{
if (debug_infrun)
{
fprintf_unfiltered (gdb_stdlog,
"infrun: skipping breakpoint: "
"stepping past insn at: %s\n",
paddress (bl->gdbarch, bl->address));
}
infrun_debug_printf ("skipping breakpoint: stepping past insn at: %s",
paddress (bl->gdbarch, bl->address));
return 0;
}
@@ -2050,14 +2045,9 @@ should_be_inserted (struct bp_location *bl)
if ((bl->loc_type == bp_loc_hardware_watchpoint)
&& stepping_past_nonsteppable_watchpoint ())
{
if (debug_infrun)
{
fprintf_unfiltered (gdb_stdlog,
"infrun: stepping past non-steppable watchpoint. "
"skipping watchpoint at %s:%d\n",
paddress (bl->gdbarch, bl->address),
bl->length);
}
infrun_debug_printf ("stepping past non-steppable watchpoint. "
"skipping watchpoint at %s:%d\n",
paddress (bl->gdbarch, bl->address), bl->length);
return 0;
}
@@ -5446,8 +5436,7 @@ handle_jit_event (void)
struct frame_info *frame;
struct gdbarch *gdbarch;
if (debug_infrun)
fprintf_unfiltered (gdb_stdlog, "handling bp_jit_event\n");
infrun_debug_printf ("handling bp_jit_event");
/* Switch terminal for any messages produced by
breakpoint_re_set. */