From 4100594e3d6266e111c0e8b42d58d383e89f9534 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Thu, 20 Feb 2020 23:43:23 -0500 Subject: [PATCH 1/1] gdb: tweak format of infrun debug log Introduce the infrun_log_debug macro and infrun_log_debug_1 helper function. This avoids having to repeat `infrun: ` in front of all messages, and `if (debug_infrun)` at all call sites. --- gdb/infrun.c | 768 ++++++------------ gdb/testsuite/gdb.base/gdb-sigterm.exp | 4 +- ...al-while-stepping-over-bp-other-thread.exp | 2 +- .../gdb.threads/stepi-random-signal.exp | 2 +- 4 files changed, 267 insertions(+), 509 deletions(-) diff --git a/gdb/infrun.c b/gdb/infrun.c index 95fc3bfe45..0c2e1de827 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -19,6 +19,8 @@ along with this program. If not, see . */ #include "defs.h" +#include "gdbsupport/common-defs.h" +#include "gdbsupport/common-utils.h" #include "infrun.h" #include #include "symtab.h" @@ -98,6 +100,24 @@ static struct async_event_handler *infrun_async_inferior_event_token; Starts off as -1, indicating "never enabled/disabled". */ static int infrun_is_async = -1; +#define infrun_log_debug(fmt, args...) \ + infrun_log_debug_1 (__LINE__, __func__, fmt, ##args) + +static void ATTRIBUTE_PRINTF(3, 4) +infrun_log_debug_1 (int line, const char *func, + const char *fmt, ...) +{ + if (debug_infrun) + { + va_list args; + va_start (args, fmt); + std::string msg = string_vprintf (fmt, args); + va_end (args); + + fprintf_unfiltered (gdb_stdout, "infrun: %s: %s\n", func, msg.c_str ()); + } +} + /* See infrun.h. */ void @@ -107,10 +127,7 @@ infrun_async (int enable) { infrun_is_async = enable; - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: infrun_async(%d)\n", - enable); + infrun_log_debug ("enable=%d", enable); if (enable) mark_async_event_handler (infrun_async_inferior_event_token); @@ -891,10 +908,8 @@ proceed_after_vfork_done (struct thread_info *thread, && !thread->stop_requested && thread->suspend.stop_signal == GDB_SIGNAL_0) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: resuming vfork parent thread %s\n", - target_pid_to_str (thread->ptid).c_str ()); + infrun_log_debug ("resuming vfork parent thread %s", + target_pid_to_str (thread->ptid).c_str ()); switch_to_thread (thread); clear_proceed_status (0); @@ -1056,10 +1071,8 @@ handle_vfork_child_exec_or_exit (int exec) free now. */ scoped_restore_current_thread restore_thread; - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: resuming vfork parent process %d\n", - resume_parent); + infrun_log_debug ("resuming vfork parent process %d", + resume_parent); iterate_over_threads (proceed_after_vfork_done, &resume_parent); } @@ -1350,9 +1363,7 @@ set_step_over_info (const address_space *aspace, CORE_ADDR address, static void clear_step_over_info (void) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: clear_step_over_info\n"); + infrun_log_debug ("clearing step over info"); step_over_info.aspace = NULL; step_over_info.address = 0; step_over_info.nonsteppable_watchpoint_p = 0; @@ -1822,12 +1833,8 @@ displaced_step_prepare (thread_info *thread) && ex.error != NOT_SUPPORTED_ERROR) throw; - if (debug_infrun) - { - fprintf_unfiltered (gdb_stdlog, - "infrun: disabling displaced stepping: %s\n", - ex.what ()); - } + infrun_log_debug ("caught exception, disabling displaced stepping: %s", + ex.what ()); /* Be verbose if "set displaced-stepping" is "on", silent if "auto". */ @@ -2011,11 +2018,7 @@ start_step_over (void) thread_step_over_chain_remove (tp); if (step_over_queue_head == NULL) - { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: step-over queue now empty\n"); - } + infrun_log_debug ("step-over queue now empty"); if (tp->control.trap_expected || tp->resumed @@ -2030,10 +2033,8 @@ start_step_over (void) tp->executing); } - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: resuming [%s] for step-over\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("resuming [%s] for step-over", + target_pid_to_str (tp->ptid).c_str ()); /* keep_going_pass_signal skips the step-over if the breakpoint is no longer inserted. In all-stop, we want to keep looking @@ -2296,18 +2297,12 @@ resume_1 (enum gdb_signal sig) if (tp->suspend.waitstatus_pending_p) { - if (debug_infrun) - { - std::string statstr - = target_waitstatus_to_string (&tp->suspend.waitstatus); - - fprintf_unfiltered (gdb_stdlog, - "infrun: resume: thread %s has pending wait " - "status %s (currently_stepping=%d).\n", - target_pid_to_str (tp->ptid).c_str (), - statstr.c_str (), - currently_stepping (tp)); - } + infrun_log_debug + ("thread %s has pending wait " + "status %s (currently_stepping=%d).", + target_pid_to_str (tp->ptid).c_str (), + target_waitstatus_to_string (&tp->suspend.waitstatus).c_str (), + currently_stepping (tp)); tp->inf->process_target ()->threads_executing = true; tp->resumed = true; @@ -2351,22 +2346,18 @@ resume_1 (enum gdb_signal sig) Eventually, we'll see a TARGET_WAITKIND_VFORK_DONE event for the parent, and tell it to `keep_going', which automatically re-sets it stepping. */ - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: resume : clear step\n"); + infrun_log_debug ("resume : clear step"); step = 0; } CORE_ADDR pc = regcache_read_pc (regcache); - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: resume (step=%d, signal=%s), " - "trap_expected=%d, current thread [%s] at %s\n", - step, gdb_signal_to_symbol_string (sig), - tp->control.trap_expected, - target_pid_to_str (inferior_ptid).c_str (), - paddress (gdbarch, pc)); + infrun_log_debug ("step=%d, signal=%s, trap_expected=%d, " + "current thread [%s] at %s", + step, gdb_signal_to_symbol_string (sig), + tp->control.trap_expected, + target_pid_to_str (inferior_ptid).c_str (), + paddress (gdbarch, pc)); /* Normally, by the time we reach `resume', the breakpoints are either removed or inserted, as appropriate. The exception is if we're sitting @@ -2390,10 +2381,8 @@ resume_1 (enum gdb_signal sig) signal handler (or hit some other event). We'll delete the step-resume breakpoint then. */ - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: resume: skipping permanent breakpoint, " - "deliver signal first\n"); + infrun_log_debug ("resume: skipping permanent breakpoint, " + "deliver signal first"); clear_step_over_info (); tp->control.trap_expected = 0; @@ -2415,9 +2404,7 @@ resume_1 (enum gdb_signal sig) { /* There's no signal to pass, we can go ahead and skip the permanent breakpoint manually. */ - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: resume: skipping permanent breakpoint\n"); + infrun_log_debug ("skipping permanent breakpoint"); gdbarch_skip_permanent_breakpoint (gdbarch, regcache); /* Update pc to reflect the new address from which we will execute instructions. */ @@ -2472,9 +2459,7 @@ resume_1 (enum gdb_signal sig) if (prepared == 0) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "Got placed in step-over queue\n"); + infrun_log_debug ("Got placed in step-over queue"); tp->control.trap_expected = 0; return; @@ -2611,10 +2596,8 @@ resume_1 (enum gdb_signal sig) gdb.threads/non-stop-fair-events.exp, on targets that don't do displaced stepping. */ - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: resume: [%s] stepped breakpoint\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("resume: [%s] stepped breakpoint", + target_pid_to_str (tp->ptid).c_str ()); tp->stepped_breakpoint = 1; @@ -2715,10 +2698,7 @@ new_stop_id (void) static void clear_proceed_status_thread (struct thread_info *tp) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: clear_proceed_status_thread (%s)\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("%s", target_pid_to_str (tp->ptid).c_str ()); /* If we're starting a new sequence, then the previous finished single-step is no longer relevant. */ @@ -2726,28 +2706,20 @@ clear_proceed_status_thread (struct thread_info *tp) { if (tp->suspend.stop_reason == TARGET_STOPPED_BY_SINGLE_STEP) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: clear_proceed_status: pending " - "event of %s was a finished step. " - "Discarding.\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("pending event of %s was a finished step. " + "Discarding.", + target_pid_to_str (tp->ptid).c_str ()); tp->suspend.waitstatus_pending_p = 0; tp->suspend.stop_reason = TARGET_STOPPED_BY_NO_REASON; } - else if (debug_infrun) + else { - std::string statstr - = target_waitstatus_to_string (&tp->suspend.waitstatus); - - fprintf_unfiltered (gdb_stdlog, - "infrun: clear_proceed_status_thread: thread %s " - "has pending wait status %s " - "(currently_stepping=%d).\n", - target_pid_to_str (tp->ptid).c_str (), - statstr.c_str (), - currently_stepping (tp)); + infrun_log_debug + ("thread %s has pending wait status %s (currently_stepping=%d).", + target_pid_to_str (tp->ptid).c_str (), + target_waitstatus_to_string (&tp->suspend.waitstatus).c_str (), + currently_stepping (tp)); } } @@ -3055,11 +3027,8 @@ proceed (CORE_ADDR addr, enum gdb_signal siggnal) if (!cur_thr->control.in_infcall) set_running (resume_target, resume_ptid, true); - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: proceed (addr=%s, signal=%s)\n", - paddress (gdbarch, addr), - gdb_signal_to_symbol_string (siggnal)); + infrun_log_debug ("addr=%s, signal=%s", paddress (gdbarch, addr), + gdb_signal_to_symbol_string (siggnal)); annotate_starting (); @@ -3103,10 +3072,8 @@ proceed (CORE_ADDR addr, enum gdb_signal siggnal) gdb_assert (!thread_is_in_step_over_chain (tp)); - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: need to step-over [%s] first\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("need to step-over [%s] first", + target_pid_to_str (tp->ptid).c_str ()); thread_step_over_chain_enqueue (tp); } @@ -3153,37 +3120,28 @@ proceed (CORE_ADDR addr, enum gdb_signal siggnal) if (!tp->inf->has_execution ()) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: proceed: [%s] target has " - "no execution\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("[%s] target has no execution", + target_pid_to_str (tp->ptid).c_str ()); continue; } if (tp->resumed) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: proceed: [%s] resumed\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("[%s] resumed", + target_pid_to_str (tp->ptid).c_str ()); gdb_assert (tp->executing || tp->suspend.waitstatus_pending_p); continue; } if (thread_is_in_step_over_chain (tp)) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: proceed: [%s] needs step-over\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("[%s] needs step-over", + target_pid_to_str (tp->ptid).c_str ()); continue; } - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: proceed: resuming %s\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("resuming %s", + target_pid_to_str (tp->ptid).c_str ()); reset_ecs (ecs, tp); switch_to_thread (tp); @@ -3465,10 +3423,9 @@ random_pending_event_thread (inferior *inf, ptid_t waiton_ptid) int random_selector = (int) ((num_events * (double) rand ()) / (RAND_MAX + 1.0)); - if (debug_infrun && num_events > 1) - fprintf_unfiltered (gdb_stdlog, - "infrun: Found %d events, selecting #%d\n", - num_events, random_selector); + if (num_events > 1) + infrun_log_debug ("Found %d events, selecting #%d", + num_events, random_selector); /* Select the Nth thread that has had an event. */ for (thread_info *tp : inf->non_exited_threads ()) @@ -3505,10 +3462,8 @@ do_target_wait_1 (inferior *inf, ptid_t ptid, } else { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: Waiting for specific thread %s.\n", - target_pid_to_str (ptid).c_str ()); + infrun_log_debug ("Waiting for specific thread %s.", + target_pid_to_str (ptid).c_str ()); /* We have a specific thread to check. */ tp = find_thread_ptid (inf, ptid); @@ -3530,31 +3485,25 @@ do_target_wait_1 (inferior *inf, ptid_t ptid, if (pc != tp->suspend.stop_pc) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: PC of %s changed. was=%s, now=%s\n", - target_pid_to_str (tp->ptid).c_str (), - paddress (gdbarch, tp->suspend.stop_pc), - paddress (gdbarch, pc)); + infrun_log_debug ("PC of %s changed. was=%s, now=%s", + target_pid_to_str (tp->ptid).c_str (), + paddress (gdbarch, tp->suspend.stop_pc), + paddress (gdbarch, pc)); discard = 1; } else if (!breakpoint_inserted_here_p (regcache->aspace (), pc)) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: previous breakpoint of %s, at %s gone\n", - target_pid_to_str (tp->ptid).c_str (), - paddress (gdbarch, pc)); + infrun_log_debug ("previous breakpoint of %s, at %s gone", + target_pid_to_str (tp->ptid).c_str (), + paddress (gdbarch, pc)); discard = 1; } if (discard) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: pending event of %s cancelled.\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("pending event of %s cancelled.", + target_pid_to_str (tp->ptid).c_str ()); tp->suspend.waitstatus.kind = TARGET_WAITKIND_SPURIOUS; tp->suspend.stop_reason = TARGET_STOPPED_BY_NO_REASON; @@ -3563,16 +3512,10 @@ do_target_wait_1 (inferior *inf, ptid_t ptid, if (tp != NULL) { - if (debug_infrun) - { - std::string statstr - = target_waitstatus_to_string (&tp->suspend.waitstatus); - - fprintf_unfiltered (gdb_stdlog, - "infrun: Using pending wait status %s for %s.\n", - statstr.c_str (), - target_pid_to_str (tp->ptid).c_str ()); - } + infrun_log_debug ("Using pending wait status %s for %s.", + target_waitstatus_to_string + (&tp->suspend.waitstatus).c_str (), + target_pid_to_str (tp->ptid).c_str ()); /* Now that we've selected our final event LWP, un-adjust its PC if it was a software breakpoint (and the target doesn't @@ -3670,10 +3613,9 @@ do_target_wait (ptid_t wait_ptid, execution_control_state *ecs, int options) random_selector = (int) ((num_inferiors * (double) rand ()) / (RAND_MAX + 1.0)); - if (debug_infrun && num_inferiors > 1) - fprintf_unfiltered (gdb_stdlog, - "infrun: Found %d inferiors, starting at #%d\n", - num_inferiors, random_selector); + if (num_inferiors > 1) + infrun_log_debug ("Found %d inferiors, starting at #%d", + num_inferiors, random_selector); /* Select the Nth inferior that was resumed. */ @@ -3737,9 +3679,7 @@ prepare_for_detach (void) if (displaced->step_thread == nullptr) return; - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "displaced-stepping in-process while detaching"); + infrun_log_debug ("displaced-stepping in-process while detaching"); scoped_restore restore_detaching = make_scoped_restore (&inf->detaching, true); @@ -3798,9 +3738,7 @@ prepare_for_detach (void) static void wait_for_inferior (inferior *inf) { - if (debug_infrun) - fprintf_unfiltered - (gdb_stdlog, "infrun: wait_for_inferior ()\n"); + infrun_log_debug ("wait_for_inferior ()"); SCOPE_EXIT { delete_just_stopped_threads_infrun_breakpoints (); }; @@ -4176,15 +4114,13 @@ nullify_last_target_wait_ptid (void) static void context_switch (execution_control_state *ecs) { - if (debug_infrun - && ecs->ptid != inferior_ptid + if (ecs->ptid != inferior_ptid && (inferior_ptid == null_ptid || ecs->event_thread != inferior_thread ())) { - fprintf_unfiltered (gdb_stdlog, "infrun: Switching context from %s ", - target_pid_to_str (inferior_ptid).c_str ()); - fprintf_unfiltered (gdb_stdlog, "to %s\n", - target_pid_to_str (ecs->ptid).c_str ()); + infrun_log_debug ("Switching context from %s to %s", + target_pid_to_str (inferior_ptid).c_str (), + target_pid_to_str (ecs->ptid).c_str ()); } switch_to_thread (ecs->event_thread); @@ -4429,9 +4365,7 @@ handle_syscall_event (struct execution_control_state *ecs) if (catch_syscall_enabled () > 0 && catching_syscall_number (syscall_number) > 0) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: syscall number = '%d'\n", - syscall_number); + infrun_log_debug ("syscall number=%d", syscall_number); ecs->event_thread->control.stop_bpstat = bpstat_stop_status (regcache->aspace (), @@ -4646,17 +4580,11 @@ THREAD_STOPPED_BY (hw_breakpoint) static void save_waitstatus (struct thread_info *tp, const target_waitstatus *ws) { - if (debug_infrun) - { - std::string statstr = target_waitstatus_to_string (ws); - - fprintf_unfiltered (gdb_stdlog, - "infrun: saving status %s for %d.%ld.%ld\n", - statstr.c_str (), - tp->ptid.pid (), - tp->ptid.lwp (), - tp->ptid.tid ()); - } + infrun_log_debug ("saving status %s for %d.%ld.%ld", + target_waitstatus_to_string (ws).c_str (), + tp->ptid.pid (), + tp->ptid.lwp (), + tp->ptid.tid ()); /* Record for later. */ tp->suspend.waitstatus = *ws; @@ -4764,8 +4692,7 @@ stop_all_threads (void) gdb_assert (exists_non_stop_target ()); - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: stop_all_threads\n"); + infrun_log_debug ("stop_all_threads"); scoped_restore_current_thread restore_thread; @@ -4785,8 +4712,8 @@ stop_all_threads (void) target_thread_events (false); } - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: stop_all_threads done\n"); + + infrun_log_debug ("stop_all_threads done"); }; /* Request threads to stop, and then wait for the stops. Because @@ -4796,10 +4723,8 @@ stop_all_threads (void) until two passes find no threads that need to be stopped. */ for (pass = 0; pass < 2; pass++, iterations++) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: stop_all_threads, pass=%d, " - "iterations=%d\n", pass, iterations); + infrun_log_debug ("stop_all_threads, pass=%d, iterations=%d", + pass, iterations); while (1) { int waits_needed = 0; @@ -4831,21 +4756,15 @@ stop_all_threads (void) We just haven't seen the notification yet. */ if (!t->stop_requested) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: %s executing, " - "need stop\n", - target_pid_to_str (t->ptid).c_str ()); + infrun_log_debug (" %s executing, need stop", + target_pid_to_str (t->ptid).c_str ()); target_stop (t->ptid); t->stop_requested = 1; } else { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: %s executing, " - "already stopping\n", - target_pid_to_str (t->ptid).c_str ()); + infrun_log_debug (" %s executing, already stopping", + target_pid_to_str (t->ptid).c_str ()); } if (t->stop_requested) @@ -4853,10 +4772,8 @@ stop_all_threads (void) } else { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: %s not executing\n", - target_pid_to_str (t->ptid).c_str ()); + infrun_log_debug (" %s not executing", + target_pid_to_str (t->ptid).c_str ()); /* The thread may be not executing, but still be resumed with a pending status to process. */ @@ -4877,13 +4794,9 @@ stop_all_threads (void) { wait_one_event event = wait_one (); - if (debug_infrun) - { - fprintf_unfiltered (gdb_stdlog, - "infrun: stop_all_threads %s %s\n", - target_waitstatus_to_string (&event.ws).c_str (), - target_pid_to_str (event.ptid).c_str ()); - } + infrun_log_debug ("%s %s\n", + target_waitstatus_to_string (&event.ws).c_str (), + target_pid_to_str (event.ptid).c_str ()); if (event.ws.kind == TARGET_WAITKIND_NO_RESUMED) { @@ -4918,10 +4831,8 @@ stop_all_threads (void) of going into an infinite loop. */ gdb_assert (t != nullptr); - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: stop_all_threads, using %s\n", - target_pid_to_str (t->ptid).c_str ()); + infrun_log_debug ("using %s\n", + target_pid_to_str (t->ptid).c_str ()); } else { @@ -4975,14 +4886,11 @@ stop_all_threads (void) if (displaced_step_fixup (t, GDB_SIGNAL_0) < 0) { /* Add it back to the step-over queue. */ - if (debug_infrun) - { - fprintf_unfiltered (gdb_stdlog, - "infrun: displaced-step of %s " - "canceled: adding back to the " - "step-over queue\n", - target_pid_to_str (t->ptid).c_str ()); - } + infrun_log_debug ("displaced-step of %s " + "canceled: adding back to the " + "step-over queue\n", + target_pid_to_str (t->ptid).c_str ()); + t->control.trap_expected = 0; thread_step_over_chain_enqueue (t); } @@ -4996,13 +4904,12 @@ stop_all_threads (void) { std::string statstr = target_waitstatus_to_string (&event.ws); - fprintf_unfiltered (gdb_stdlog, - "infrun: target_wait %s, saving " - "status for %d.%ld.%ld\n", - statstr.c_str (), - t->ptid.pid (), - t->ptid.lwp (), - t->ptid.tid ()); + infrun_log_debug ("target_wait %s, saving " + "status for %d.%ld.%ld\n", + statstr.c_str (), + t->ptid.pid (), + t->ptid.lwp (), + t->ptid.tid ()); } /* Record for later. */ @@ -5021,16 +4928,12 @@ stop_all_threads (void) regcache = get_thread_regcache (t); t->suspend.stop_pc = regcache_read_pc (regcache); - if (debug_infrun) - { - fprintf_unfiltered (gdb_stdlog, - "infrun: saved stop_pc=%s for %s " - "(currently_stepping=%d)\n", - paddress (target_gdbarch (), - t->suspend.stop_pc), - target_pid_to_str (t->ptid).c_str (), - currently_stepping (t)); - } + infrun_log_debug ("saved stop_pc=%s for %s " + "(currently_stepping=%d)\n", + paddress (target_gdbarch (), + t->suspend.stop_pc), + target_pid_to_str (t->ptid).c_str (), + currently_stepping (t)); } } } @@ -5061,10 +4964,7 @@ handle_no_resumed (struct execution_control_state *ecs) we're not synchronously waiting for events either. Just ignore. */ - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: TARGET_WAITKIND_NO_RESUMED " - "(ignoring: bg)\n"); + infrun_log_debug ("TARGET_WAITKIND_NO_RESUMED (ignoring: bg)"); prepare_to_wait (ecs); return 1; } @@ -5111,10 +5011,8 @@ handle_no_resumed (struct execution_control_state *ecs) { /* There were no unwaited-for children left in the target at some point, but there are now. Just ignore. */ - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: TARGET_WAITKIND_NO_RESUMED " - "(ignoring: found resumed)\n"); + infrun_log_debug ("TARGET_WAITKIND_NO_RESUMED " + "(ignoring: found resumed)"); prepare_to_wait (ecs); return 1; } @@ -5147,9 +5045,7 @@ handle_inferior_event (struct execution_control_state *ecs) enum stop_kind stop_soon; - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: handle_inferior_event %s\n", - target_waitstatus_to_string (&ecs->ws).c_str ()); + infrun_log_debug ("%s", target_waitstatus_to_string (&ecs->ws).c_str ()); if (ecs->ws.kind == TARGET_WAITKIND_IGNORE) { @@ -5232,9 +5128,7 @@ handle_inferior_event (struct execution_control_state *ecs) if (breakpoint_inserted_here_p (regcache->aspace (), regcache_read_pc (regcache))) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: Treating signal as SIGTRAP\n"); + infrun_log_debug ("Treating signal as SIGTRAP"); ecs->ws.value.sig = GDB_SIGNAL_TRAP; } } @@ -5311,8 +5205,7 @@ handle_inferior_event (struct execution_control_state *ecs) if (stop_soon == STOP_QUIETLY_NO_SIGSTOP || stop_soon == STOP_QUIETLY_REMOTE) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: quietly stopped\n"); + infrun_log_debug ("quietly stopped"); stop_waiting (ecs); return; } @@ -5384,9 +5277,8 @@ handle_inferior_event (struct execution_control_state *ecs) information to the user. It's better to just warn her about it (if infrun debugging is enabled), and give up. */ - if (debug_infrun) - fprintf_filtered (gdb_stdlog, _("\ -Cannot fill $_exitsignal with the correct signal number.\n")); + infrun_log_debug ("Cannot fill $_exitsignal with the correct " + "signal number."); } gdb::observers::signal_exited.notify (ecs->ws.value.sig); @@ -5652,8 +5544,7 @@ Cannot fill $_exitsignal with the correct signal number.\n")); /* Switch to the stopped thread. */ context_switch (ecs); - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: stopped\n"); + infrun_log_debug ("stopped"); delete_just_stopped_threads_single_step_breakpoints (); ecs->event_thread->suspend.stop_pc @@ -5684,41 +5575,30 @@ restart_threads (struct thread_info *event_thread) if (tp == event_thread) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: restart threads: " - "[%s] is event thread\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("restart threads: [%s] is event thread", + target_pid_to_str (tp->ptid).c_str ()); continue; } if (!(tp->state == THREAD_RUNNING || tp->control.in_infcall)) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: restart threads: " - "[%s] not meant to be running\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("restart threads: [%s] not meant to be running", + target_pid_to_str (tp->ptid).c_str ()); continue; } if (tp->resumed) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: restart threads: [%s] resumed\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("restart threads: [%s] resumed", + target_pid_to_str (tp->ptid).c_str ()); gdb_assert (tp->executing || tp->suspend.waitstatus_pending_p); continue; } if (thread_is_in_step_over_chain (tp)) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: restart threads: " - "[%s] needs step-over\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("restart threads: [%s] needs step-over", + target_pid_to_str (tp->ptid).c_str ()); gdb_assert (!tp->resumed); continue; } @@ -5726,11 +5606,8 @@ restart_threads (struct thread_info *event_thread) if (tp->suspend.waitstatus_pending_p) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: restart threads: " - "[%s] has pending status\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("restart threads: [%s] has pending status", + target_pid_to_str (tp->ptid).c_str ()); tp->resumed = true; continue; } @@ -5750,10 +5627,8 @@ restart_threads (struct thread_info *event_thread) if (currently_stepping (tp)) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: restart threads: [%s] was stepping\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("restart threads: [%s] was stepping", + target_pid_to_str (tp->ptid).c_str ()); keep_going_stepped_thread (tp); } else @@ -5761,10 +5636,8 @@ restart_threads (struct thread_info *event_thread) struct execution_control_state ecss; struct execution_control_state *ecs = &ecss; - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: restart threads: [%s] continuing\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("restart threads: [%s] continuing", + target_pid_to_str (tp->ptid).c_str ()); reset_ecs (ecs, tp); switch_to_thread (tp); keep_going_pass_signal (ecs); @@ -5857,12 +5730,8 @@ finish_step_over (struct execution_control_state *ecs) struct thread_info *tp = ecs->event_thread; struct regcache *regcache; - if (debug_infrun) - { - fprintf_unfiltered (gdb_stdlog, - "infrun: found resumed threads with " - "pending events, saving status\n"); - } + infrun_log_debug ("found resumed threads with " + "pending events, saving status"); gdb_assert (pending != tp); @@ -5878,16 +5747,12 @@ finish_step_over (struct execution_control_state *ecs) regcache = get_thread_regcache (tp); tp->suspend.stop_pc = regcache_read_pc (regcache); - if (debug_infrun) - { - fprintf_unfiltered (gdb_stdlog, - "infrun: saved stop_pc=%s for %s " - "(currently_stepping=%d)\n", - paddress (target_gdbarch (), - tp->suspend.stop_pc), - target_pid_to_str (tp->ptid).c_str (), - currently_stepping (tp)); - } + infrun_log_debug ("saved stop_pc=%s for %s " + "(currently_stepping=%d)\n", + paddress (target_gdbarch (), + tp->suspend.stop_pc), + target_pid_to_str (tp->ptid).c_str (), + currently_stepping (tp)); /* This in-line step-over finished; clear this so we won't start a new one. This is what handle_signal_stop would @@ -5943,22 +5808,20 @@ handle_signal_stop (struct execution_control_state *ecs) switch_to_thread (ecs->event_thread); - fprintf_unfiltered (gdb_stdlog, "infrun: stop_pc = %s\n", - paddress (reg_gdbarch, - ecs->event_thread->suspend.stop_pc)); + infrun_log_debug ("stop_pc=%s", + paddress (reg_gdbarch, + ecs->event_thread->suspend.stop_pc)); if (target_stopped_by_watchpoint ()) { CORE_ADDR addr; - fprintf_unfiltered (gdb_stdlog, "infrun: stopped by watchpoint\n"); + infrun_log_debug ("stopped by watchpoint"); if (target_stopped_data_address (current_top_target (), &addr)) - fprintf_unfiltered (gdb_stdlog, - "infrun: stopped data address = %s\n", - paddress (reg_gdbarch, addr)); + infrun_log_debug ("stopped data address=%s", + paddress (reg_gdbarch, addr)); else - fprintf_unfiltered (gdb_stdlog, - "infrun: (no data address available)\n"); + infrun_log_debug ("(no data address available)"); } } @@ -5968,8 +5831,7 @@ handle_signal_stop (struct execution_control_state *ecs) if (stop_soon == STOP_QUIETLY || stop_soon == STOP_QUIETLY_REMOTE) { context_switch (ecs); - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: quietly stopped\n"); + infrun_log_debug ("quietly stopped"); stop_print_frame = 1; stop_waiting (ecs); return; @@ -6010,8 +5872,7 @@ handle_signal_stop (struct execution_control_state *ecs) so, then switch to that thread. */ if (ecs->ptid != inferior_ptid) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: context switch\n"); + infrun_log_debug ("context switch"); context_switch (ecs); @@ -6042,25 +5903,16 @@ handle_signal_stop (struct execution_control_state *ecs) { if (single_step_breakpoint_inserted_here_p (aspace, pc)) { - if (debug_infrun) - { - fprintf_unfiltered (gdb_stdlog, - "infrun: [%s] hit another thread's " - "single-step breakpoint\n", - target_pid_to_str (ecs->ptid).c_str ()); - } + infrun_log_debug ("[%s] hit another thread's single-step " + "breakpoint", + target_pid_to_str (ecs->ptid).c_str ()); ecs->hit_singlestep_breakpoint = 1; } } else { - if (debug_infrun) - { - fprintf_unfiltered (gdb_stdlog, - "infrun: [%s] hit its " - "single-step breakpoint\n", - target_pid_to_str (ecs->ptid).c_str ()); - } + infrun_log_debug ("[%s] hit its single-step breakpoint", + target_pid_to_str (ecs->ptid).c_str ()); } } delete_just_stopped_threads_single_step_breakpoints (); @@ -6175,8 +6027,9 @@ handle_signal_stop (struct execution_control_state *ecs) int step_through_delay = gdbarch_single_step_through_delay (gdbarch, frame); - if (debug_infrun && step_through_delay) - fprintf_unfiltered (gdb_stdlog, "infrun: step through delay\n"); + if (step_through_delay) + infrun_log_debug ("step through delay"); + if (ecs->event_thread->control.step_range_end == 0 && step_through_delay) { @@ -6217,14 +6070,14 @@ handle_signal_stop (struct execution_control_state *ecs) simply make sure to ignore it if `stopped_by_watchpoint' is set. */ - if (debug_infrun - && ecs->event_thread->suspend.stop_signal == GDB_SIGNAL_TRAP + if (ecs->event_thread->suspend.stop_signal == GDB_SIGNAL_TRAP && !bpstat_explains_signal (ecs->event_thread->control.stop_bpstat, GDB_SIGNAL_TRAP) && stopped_by_watchpoint) - fprintf_unfiltered (gdb_stdlog, - "infrun: no user watchpoint explains " - "watchpoint SIGTRAP, ignoring\n"); + { + infrun_log_debug ("no user watchpoint explains watchpoint SIGTRAP, " + "ignoring"); + } /* NOTE: cagney/2003-03-29: These checks for a random signal at one stage in the past included checks for an inferior @@ -6281,10 +6134,7 @@ handle_signal_stop (struct execution_control_state *ecs) else { /* A delayed software breakpoint event. Ignore the trap. */ - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: delayed software breakpoint " - "trap, ignoring\n"); + infrun_log_debug ("delayed software breakpoint trap, ignoring"); random_signal = 0; } } @@ -6294,10 +6144,8 @@ handle_signal_stop (struct execution_control_state *ecs) if (random_signal && target_stopped_by_hw_breakpoint ()) { /* A delayed hardware breakpoint event. Ignore the trap. */ - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: delayed hardware breakpoint/watchpoint " - "trap, ignoring\n"); + infrun_log_debug ("delayed hardware breakpoint/watchpoint " + "trap, ignoring"); random_signal = 0; } @@ -6321,8 +6169,7 @@ handle_signal_stop (struct execution_control_state *ecs) if (ecs->event_thread->stop_requested) { random_signal = 1; - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: user-requested stop\n"); + infrun_log_debug ("user-requested stop"); } /* For the program's own signals, act according to @@ -6334,9 +6181,8 @@ handle_signal_stop (struct execution_control_state *ecs) struct inferior *inf = find_inferior_ptid (ecs->target, ecs->ptid); enum gdb_signal stop_signal = ecs->event_thread->suspend.stop_signal; - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: random signal (%s)\n", - gdb_signal_to_symbol_string (stop_signal)); + infrun_log_debug ("random signal (%s)", + gdb_signal_to_symbol_string (stop_signal)); stopped_by_random_signal = 1; @@ -6381,10 +6227,7 @@ handle_signal_stop (struct execution_control_state *ecs) code paths as single-step - set a breakpoint at the signal return address and then, once hit, step off that breakpoint. */ - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: signal arrived while stepping over " - "breakpoint\n"); + infrun_log_debug ("signal arrived while stepping over breakpoint"); insert_hp_step_resume_breakpoint_at_frame (frame); ecs->event_thread->step_after_step_resume_breakpoint = 1; @@ -6415,10 +6258,7 @@ handle_signal_stop (struct execution_control_state *ecs) Note that this is only needed for a signal delivered while in the single-step range. Nested signals aren't a problem as they eventually all return. */ - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: signal may take us out of " - "single-step range\n"); + infrun_log_debug ("signal may take us out of single-step range"); clear_step_over_info (); insert_hp_step_resume_breakpoint_at_frame (frame); @@ -6438,9 +6278,7 @@ handle_signal_stop (struct execution_control_state *ecs) if (!switch_back_to_stepped_thread (ecs)) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: random signal, keep going\n"); + infrun_log_debug ("random signal, keep going"); keep_going (ecs); } @@ -6494,9 +6332,7 @@ process_event_stop_test (struct execution_control_state *ecs) install a momentary breakpoint at the target of the jmp_buf. */ - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME\n"); + infrun_log_debug ("BPSTAT_WHAT_SET_LONGJMP_RESUME"); ecs->event_thread->stepping_over_breakpoint = 1; @@ -6517,10 +6353,8 @@ process_event_stop_test (struct execution_control_state *ecs) || !gdbarch_get_longjmp_target (gdbarch, frame, &jmp_buf_pc)) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME " - "(!gdbarch_get_longjmp_target)\n"); + infrun_log_debug ("BPSTAT_WHAT_SET_LONGJMP_RESUME " + "(!gdbarch_get_longjmp_target)"); keep_going (ecs); return; } @@ -6555,9 +6389,7 @@ process_event_stop_test (struct execution_control_state *ecs) against stale dummy frames and user is not interested in stopping around longjmps. */ - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: BPSTAT_WHAT_CLEAR_LONGJMP_RESUME\n"); + infrun_log_debug ("BPSTAT_WHAT_CLEAR_LONGJMP_RESUME"); gdb_assert (ecs->event_thread->control.exception_resume_breakpoint != NULL); @@ -6603,16 +6435,14 @@ process_event_stop_test (struct execution_control_state *ecs) return; case BPSTAT_WHAT_SINGLE: - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: BPSTAT_WHAT_SINGLE\n"); + infrun_log_debug ("BPSTAT_WHAT_SINGLE"); ecs->event_thread->stepping_over_breakpoint = 1; /* Still need to check other stuff, at least the case where we are stepping and step out of the right range. */ break; case BPSTAT_WHAT_STEP_RESUME: - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: BPSTAT_WHAT_STEP_RESUME\n"); + infrun_log_debug ("BPSTAT_WHAT_STEP_RESUME"); delete_step_resume_breakpoint (ecs->event_thread); if (ecs->event_thread->control.proceed_to_finish @@ -6644,8 +6474,7 @@ process_event_stop_test (struct execution_control_state *ecs) break; case BPSTAT_WHAT_STOP_NOISY: - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: BPSTAT_WHAT_STOP_NOISY\n"); + infrun_log_debug ("BPSTAT_WHAT_STOP_NOISY"); stop_print_frame = 1; /* Assume the thread stopped for a breapoint. We'll still check @@ -6657,8 +6486,7 @@ process_event_stop_test (struct execution_control_state *ecs) return; case BPSTAT_WHAT_STOP_SILENT: - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: BPSTAT_WHAT_STOP_SILENT\n"); + infrun_log_debug ("BPSTAT_WHAT_STOP_SILENT"); stop_print_frame = 0; /* Assume the thread stopped for a breapoint. We'll still check @@ -6669,8 +6497,7 @@ process_event_stop_test (struct execution_control_state *ecs) return; case BPSTAT_WHAT_HP_STEP_RESUME: - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: BPSTAT_WHAT_HP_STEP_RESUME\n"); + infrun_log_debug ("BPSTAT_WHAT_HP_STEP_RESUME"); delete_step_resume_breakpoint (ecs->event_thread); if (ecs->event_thread->step_after_step_resume_breakpoint) @@ -6705,10 +6532,7 @@ process_event_stop_test (struct execution_control_state *ecs) && sr_bp->type == bp_hp_step_resume && sr_bp->loc->address == ecs->event_thread->prev_pc) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: stepped permanent breakpoint, stopped in " - "handler\n"); + infrun_log_debug ("stepped permanent breakpoint, stopped in handler"); delete_step_resume_breakpoint (ecs->event_thread); ecs->event_thread->step_after_step_resume_breakpoint = 0; } @@ -6726,9 +6550,7 @@ process_event_stop_test (struct execution_control_state *ecs) if (ecs->event_thread->control.step_resume_breakpoint) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: step-resume breakpoint is inserted\n"); + infrun_log_debug ("step-resume breakpoint is inserted"); /* Having a step-resume breakpoint overrides anything else having to do with stepping commands until @@ -6739,8 +6561,7 @@ process_event_stop_test (struct execution_control_state *ecs) if (ecs->event_thread->control.step_range_end == 0) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: no stepping, continue\n"); + infrun_log_debug ("no stepping, continue"); /* Likewise if we aren't even stepping. */ keep_going (ecs); return; @@ -6769,11 +6590,10 @@ process_event_stop_test (struct execution_control_state *ecs) || frame_id_eq (get_frame_id (frame), ecs->event_thread->control.step_frame_id))) { - if (debug_infrun) - fprintf_unfiltered - (gdb_stdlog, "infrun: stepping inside range [%s-%s]\n", - paddress (gdbarch, ecs->event_thread->control.step_range_start), - paddress (gdbarch, ecs->event_thread->control.step_range_end)); + infrun_log_debug + ("stepping inside range [%s-%s]", + paddress (gdbarch, ecs->event_thread->control.step_range_start), + paddress (gdbarch, ecs->event_thread->control.step_range_end)); /* Tentatively re-enable range stepping; `resume' disables it if necessary (e.g., if we're stepping over a breakpoint or we @@ -6816,9 +6636,7 @@ process_event_stop_test (struct execution_control_state *ecs) gdbarch_skip_solib_resolver (gdbarch, ecs->event_thread->suspend.stop_pc); - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: stepped into dynsym resolve code\n"); + infrun_log_debug ("stepped into dynsym resolve code"); if (pc_after_resolver) { @@ -6841,9 +6659,7 @@ process_event_stop_test (struct execution_control_state *ecs) && gdbarch_in_indirect_branch_thunk (gdbarch, ecs->event_thread->suspend.stop_pc)) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: stepped into indirect branch thunk\n"); + infrun_log_debug ("stepped into indirect branch thunk"); keep_going (ecs); return; } @@ -6853,9 +6669,7 @@ process_event_stop_test (struct execution_control_state *ecs) || ecs->event_thread->control.step_over_calls == STEP_OVER_ALL) && get_frame_type (frame) == SIGTRAMP_FRAME) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: stepped into signal trampoline\n"); + infrun_log_debug ("stepped into signal trampoline"); /* The inferior, while doing a "step" or "next", has ended up in a signal trampoline (either by a signal being delivered or by the signal handler returning). Just single-step until the @@ -6880,9 +6694,7 @@ process_event_stop_test (struct execution_control_state *ecs) CORE_ADDR real_stop_pc = gdbarch_skip_trampoline_code (gdbarch, frame, stop_pc); - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: stepped into solib return tramp\n"); + infrun_log_debug ("stepped into solib return tramp"); /* Only proceed through if we know where it's going. */ if (real_stop_pc) @@ -6935,8 +6747,7 @@ process_event_stop_test (struct execution_control_state *ecs) CORE_ADDR stop_pc = ecs->event_thread->suspend.stop_pc; CORE_ADDR real_stop_pc; - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: stepped into subroutine\n"); + infrun_log_debug ("stepped into subroutine"); if (ecs->event_thread->control.step_over_calls == STEP_OVER_NONE) { @@ -7133,9 +6944,7 @@ process_event_stop_test (struct execution_control_state *ecs) && ecs->stop_func_name == NULL && stop_pc_sal.line == 0) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: stepped into undebuggable function\n"); + infrun_log_debug ("stepped into undebuggable function"); /* The inferior just stepped into, or returned to, an undebuggable function (where there is no debugging information @@ -7168,8 +6977,7 @@ process_event_stop_test (struct execution_control_state *ecs) { /* It is stepi or nexti. We always want to stop stepping after one instruction. */ - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: stepi/nexti\n"); + infrun_log_debug ("stepi/nexti"); end_stepping_range (ecs); return; } @@ -7180,8 +6988,7 @@ process_event_stop_test (struct execution_control_state *ecs) stepping (does this always happen right after one instruction, when we do "s" in a function with no line numbers, or can this happen as a result of a return or longjmp?). */ - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: no line number info\n"); + infrun_log_debug ("line number info"); end_stepping_range (ecs); return; } @@ -7194,9 +7001,7 @@ process_event_stop_test (struct execution_control_state *ecs) ecs->event_thread->control.step_frame_id) && inline_skipped_frames (ecs->event_thread)) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: stepped into inlined function\n"); + infrun_log_debug ("stepped into inlined function"); symtab_and_line call_sal = find_frame_sal (get_current_frame ()); @@ -7246,9 +7051,7 @@ process_event_stop_test (struct execution_control_state *ecs) && stepped_in_from (get_current_frame (), ecs->event_thread->control.step_frame_id)) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: stepping through inlined function\n"); + infrun_log_debug ("stepping through inlined function"); if (ecs->event_thread->control.step_over_calls == STEP_OVER_ALL || inline_frame_is_marked_for_skip (false, ecs->event_thread)) @@ -7269,9 +7072,7 @@ process_event_stop_test (struct execution_control_state *ecs) we don't stop if we step into the middle of a different line. That is said to make things like for (;;) statements work better. */ - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: stepped to a different line\n"); + infrun_log_debug ("infrun: stepped to a different line\n"); end_stepping_range (ecs); return; } @@ -7283,10 +7084,8 @@ process_event_stop_test (struct execution_control_state *ecs) ignore this line table entry, and continue stepping forward, looking for a better place to stop. */ refresh_step_info = false; - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: stepped to a different line, but " - "it's not the start of a statement\n"); + infrun_log_debug ("infrun: stepped to a different line, but " + "it's not the start of a statement\n"); } } @@ -7310,8 +7109,7 @@ process_event_stop_test (struct execution_control_state *ecs) if (refresh_step_info) set_step_info (ecs->event_thread, frame, stop_pc_sal); - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: keep going\n"); + infrun_log_debug ("keep going"); keep_going (ecs); } @@ -7343,12 +7141,8 @@ switch_back_to_stepped_thread (struct execution_control_state *ecs) if (ecs->event_thread->control.trap_expected && ecs->event_thread->suspend.stop_signal != GDB_SIGNAL_TRAP) { - if (debug_infrun) - { - fprintf_unfiltered (gdb_stdlog, - "infrun: need to finish step-over of [%s]\n", - target_pid_to_str (ecs->event_thread->ptid).c_str ()); - } + infrun_log_debug ("need to finish step-over of [%s]", + target_pid_to_str (ecs->event_thread->ptid).c_str ()); keep_going (ecs); return 1; } @@ -7357,13 +7151,8 @@ switch_back_to_stepped_thread (struct execution_control_state *ecs) breakpoint of another thread. */ if (ecs->hit_singlestep_breakpoint) { - if (debug_infrun) - { - fprintf_unfiltered (gdb_stdlog, - "infrun: need to step [%s] over single-step " - "breakpoint\n", - target_pid_to_str (ecs->ptid).c_str ()); - } + infrun_log_debug ("need to step [%s] over single-step breakpoint", + target_pid_to_str (ecs->ptid).c_str ()); keep_going (ecs); return 1; } @@ -7373,12 +7162,9 @@ switch_back_to_stepped_thread (struct execution_control_state *ecs) another thread. */ if (thread_still_needs_step_over (ecs->event_thread)) { - if (debug_infrun) - { - fprintf_unfiltered (gdb_stdlog, - "infrun: thread [%s] still needs step-over\n", - target_pid_to_str (ecs->event_thread->ptid).c_str ()); - } + infrun_log_debug + ("thread [%s] still needs step-over", + target_pid_to_str (ecs->event_thread->ptid).c_str ()); keep_going (ecs); return 1; } @@ -7457,9 +7243,7 @@ switch_back_to_stepped_thread (struct execution_control_state *ecs) if (stepping_thread != NULL) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: switching back to stepped thread\n"); + infrun_log_debug ("switching back to stepped thread"); if (keep_going_stepped_thread (stepping_thread)) { @@ -7505,18 +7289,14 @@ keep_going_stepped_thread (struct thread_info *tp) if (tp->state == THREAD_EXITED || !target_thread_alive (tp->ptid)) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: not resuming previously " - "stepped thread, it has vanished\n"); + infrun_log_debug ("not resuming previously stepped thread, it has " + "vanished"); delete_thread (tp); return 0; } - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: resuming previously stepped thread\n"); + infrun_log_debug ("resuming previously stepped thread"); reset_ecs (ecs, tp); switch_to_thread (tp); @@ -7541,11 +7321,9 @@ keep_going_stepped_thread (struct thread_info *tp) { ptid_t resume_ptid; - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: expected thread advanced also (%s -> %s)\n", - paddress (target_gdbarch (), tp->prev_pc), - paddress (target_gdbarch (), tp->suspend.stop_pc)); + infrun_log_debug ("expected thread advanced also (%s -> %s)", + paddress (target_gdbarch (), tp->prev_pc), + paddress (target_gdbarch (), tp->suspend.stop_pc)); /* Clear the info of the previous step-over, as it's no longer valid (if the thread was trying to step over a breakpoint, it @@ -7567,9 +7345,7 @@ keep_going_stepped_thread (struct thread_info *tp) } else { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: expected thread still hasn't advanced\n"); + infrun_log_debug ("expected thread still hasn't advanced"); keep_going_pass_signal (ecs); } @@ -7720,10 +7496,8 @@ insert_step_resume_breakpoint_at_sal_1 (struct gdbarch *gdbarch, gdb_assert (inferior_thread ()->control.step_resume_breakpoint == NULL); gdb_assert (sr_type == bp_step_resume || sr_type == bp_hp_step_resume); - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: inserting step-resume breakpoint at %s\n", - paddress (gdbarch, sr_sal.pc)); + infrun_log_debug ("inserting step-resume breakpoint at %s", + paddress (gdbarch, sr_sal.pc)); inferior_thread ()->control.step_resume_breakpoint = set_momentary_breakpoint (gdbarch, sr_sal, sr_id, sr_type).release (); @@ -7809,10 +7583,8 @@ insert_longjmp_resume_breakpoint (struct gdbarch *gdbarch, CORE_ADDR pc) longjmp_resume_breakpoint when one is already active. */ gdb_assert (inferior_thread ()->control.exception_resume_breakpoint == NULL); - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: inserting longjmp-resume breakpoint at %s\n", - paddress (gdbarch, pc)); + infrun_log_debug ("inserting longjmp-resume breakpoint at %s", + paddress (gdbarch, pc)); inferior_thread ()->control.exception_resume_breakpoint = set_momentary_breakpoint_at_pc (gdbarch, pc, bp_longjmp_resume).release (); @@ -7845,10 +7617,8 @@ insert_exception_resume_breakpoint (struct thread_info *tp, { handler = value_as_address (value); - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: exception resume at %lx\n", - (unsigned long) handler); + infrun_log_debug ("exception resume at %lx", + (unsigned long) handler); bp = set_momentary_breakpoint_at_pc (get_frame_arch (frame), handler, @@ -7885,11 +7655,8 @@ insert_exception_resume_from_probe (struct thread_info *tp, handler = value_as_address (arg_value); - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: exception resume at %s\n", - paddress (probe->objfile->arch (), - handler)); + infrun_log_debug ("exception resume at %s", + paddress (probe->objfile->arch (), handler)); bp = set_momentary_breakpoint_at_pc (get_frame_arch (frame), handler, bp_exception_resume).release (); @@ -7968,8 +7735,7 @@ check_exception_resume (struct execution_control_state *ecs, static void stop_waiting (struct execution_control_state *ecs) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: stop_waiting\n"); + infrun_log_debug ("stop_waiting"); /* Let callers know we don't want to wait for the inferior anymore. */ ecs->wait_some_more = 0; @@ -7997,11 +7763,9 @@ keep_going_pass_signal (struct execution_control_state *ecs) { struct thread_info *tp = ecs->event_thread; - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: %s has trap_expected set, " - "resuming to collect trap\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("%s has trap_expected set, " + "resuming to collect trap", + target_pid_to_str (tp->ptid).c_str ()); /* We haven't yet gotten our trap, and either: intercepted a non-signal event (e.g., a fork); or took a signal which we @@ -8019,20 +7783,15 @@ keep_going_pass_signal (struct execution_control_state *ecs) if (ecs->hit_singlestep_breakpoint || thread_still_needs_step_over (tp)) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: step-over already in progress: " - "step-over for %s deferred\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("step-over already in progress: " + "step-over for %s deferred", + target_pid_to_str (tp->ptid).c_str ()); thread_step_over_chain_enqueue (tp); } else { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, - "infrun: step-over in progress: " - "resume of %s deferred\n", - target_pid_to_str (tp->ptid).c_str ()); + infrun_log_debug ("step-over in progress: resume of %s deferred", + target_pid_to_str (tp->ptid).c_str ()); } } else @@ -8132,8 +7891,7 @@ keep_going (struct execution_control_state *ecs) static void prepare_to_wait (struct execution_control_state *ecs) { - if (debug_infrun) - fprintf_unfiltered (gdb_stdlog, "infrun: prepare_to_wait\n"); + infrun_log_debug ("prepare_to_wait"); ecs->wait_some_more = 1; diff --git a/gdb/testsuite/gdb.base/gdb-sigterm.exp b/gdb/testsuite/gdb.base/gdb-sigterm.exp index 4f1f809818..636528831e 100644 --- a/gdb/testsuite/gdb.base/gdb-sigterm.exp +++ b/gdb/testsuite/gdb.base/gdb-sigterm.exp @@ -53,7 +53,7 @@ proc do_test { pass } { set test "run a bit #$pass" set abort 1 gdb_test_multiple "step" $test { - -re "infrun: stepping inside range" { + -re "infrun: process_event_stop_test: stepping inside range" { # Suppress pass $test verbose -log "$pf_prefix $test: ran" set abort 0 @@ -78,7 +78,7 @@ proc do_test { pass } { verbose -log "$pf_prefix $test: got eof" set abort 0 } - -re "infrun: stepping inside range" { + -re "infrun: process_event_stop_test: stepping inside range" { incr stepping exp_continue } diff --git a/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp b/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp index e3aa083ab2..6a95081b60 100644 --- a/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp +++ b/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp @@ -104,7 +104,7 @@ gdb_test "set debug infrun 1" set test "step" gdb_test_sequence $test $test { "need to step-over" - "resume \\(step=1" + "resume_1: step=1," "signal arrived while stepping over breakpoint" "stepped to a different line" "callme" diff --git a/gdb/testsuite/gdb.threads/stepi-random-signal.exp b/gdb/testsuite/gdb.threads/stepi-random-signal.exp index c2722a2a32..fa20f38ba6 100644 --- a/gdb/testsuite/gdb.threads/stepi-random-signal.exp +++ b/gdb/testsuite/gdb.threads/stepi-random-signal.exp @@ -87,7 +87,7 @@ set seen 0 set test "stepi" if {[gdb_test_multiple "stepi" "$test" { - -re "infrun: random signal" { + -re "infrun: handle_signal_stop: random signal" { set seen 1 exp_continue } -- 2.34.1