From: Markus Metzger Date: Wed, 21 Feb 2024 17:06:41 +0000 (+0000) Subject: gdb, btrace: set wait status to ignore if nothing is moving X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c925bff8251b1d669ee8dad2cd9688555eadb8df;p=thirdparty%2Fbinutils-gdb.git gdb, btrace: set wait status to ignore if nothing is moving When record_btrace::wait() is called and no threads are moving, we set the wait status to no_resumed. Change that to ignore. This helps with enabling per-inferior run-control for the record btrace target as it avoids breaking out of do_target_wait() too early with no_resumed when there would have been an event on another thread. --- diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c index a04c0dae1cd..4bb45bb6d20 100644 --- a/gdb/record-btrace.c +++ b/gdb/record-btrace.c @@ -2314,14 +2314,14 @@ btrace_step_spurious (void) return status; } -/* Return a target_waitstatus indicating that the thread was not resumed. */ +/* Return a target_waitstatus indicating that nothing is moving. */ static struct target_waitstatus -btrace_step_no_resumed (void) +btrace_step_no_moving_threads (void) { struct target_waitstatus status; - status.set_no_resumed (); + status.set_ignore (); return status; } @@ -2626,7 +2626,7 @@ record_btrace_target::wait (ptid_t ptid, struct target_waitstatus *status, if (moving.empty ()) { - *status = btrace_step_no_resumed (); + *status = btrace_step_no_moving_threads (); DEBUG ("wait ended by %s: %s", null_ptid.to_string ().c_str (), status->to_string ().c_str ());