aboutsummaryrefslogtreecommitdiff
path: root/gdb/infrun.c
diff options
context:
space:
mode:
authorAndrew Burgess <aburgess@redhat.com>2022-05-09 17:51:54 +0100
committerAndrew Burgess <aburgess@redhat.com>2024-03-25 17:25:06 +0000
commit07505b613a0605ef42a004364ab8ccb70fd3c8eb (patch)
tree07fb43b0b20d37fa1677d0b86d152d687d5525e8 /gdb/infrun.c
parent198ff6ff819c240545f9fc68b39636fd376d4ba9 (diff)
downloadgdb-07505b613a0605ef42a004364ab8ccb70fd3c8eb.zip
gdb-07505b613a0605ef42a004364ab8ccb70fd3c8eb.tar.gz
gdb-07505b613a0605ef42a004364ab8ccb70fd3c8eb.tar.bz2
Revert "gdb: remove unnecessary parameter wait_ptid from do_target_wait"
This reverts commit ac0d67ed1dcf470bad6a3bc4800c2ddc9bedecca. There was nothing wrong with the commit which I'm reverting here, but it removed some functionality that will be needed for a later commit; that is, the ability for GDB to ask for events from a specific ptid_t via the do_target_wait function. In a follow up commit, this functionality will be used to implement inferior function calls in multi-threaded inferiors. This is not a straight revert of the above commit. Reverting the above commit replaces a 'nullptr' with 'NULL', I've gone in and changed that, preserving the 'nullptr'. Reviewed-By: Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> Tested-By: Luis Machado <luis.machado@arm.com> Tested-By: Keith Seitz <keiths@redhat.com>
Diffstat (limited to 'gdb/infrun.c')
-rw-r--r--gdb/infrun.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/gdb/infrun.c b/gdb/infrun.c
index bbb98f6..e0e0ba3 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -4125,7 +4125,8 @@ do_target_wait_1 (inferior *inf, ptid_t ptid,
more events. Polls for events from all inferiors/targets. */
static bool
-do_target_wait (execution_control_state *ecs, target_wait_flags options)
+do_target_wait (ptid_t wait_ptid, execution_control_state *ecs,
+ target_wait_flags options)
{
int num_inferiors = 0;
int random_selector;
@@ -4135,9 +4136,10 @@ do_target_wait (execution_control_state *ecs, target_wait_flags options)
polling the rest of the inferior list starting from that one in a
circular fashion until the whole list is polled once. */
- auto inferior_matches = [] (inferior *inf)
+ auto inferior_matches = [&wait_ptid] (inferior *inf)
{
- return inf->process_target () != nullptr;
+ return (inf->process_target () != nullptr
+ && ptid_t (inf->pid).matches (wait_ptid));
};
/* First see how many matching inferiors we have. */
@@ -4176,7 +4178,7 @@ do_target_wait (execution_control_state *ecs, target_wait_flags options)
auto do_wait = [&] (inferior *inf)
{
- ecs->ptid = do_target_wait_1 (inf, minus_one_ptid, &ecs->ws, options);
+ ecs->ptid = do_target_wait_1 (inf, wait_ptid, &ecs->ws, options);
ecs->target = inf->process_target ();
return (ecs->ws.kind () != TARGET_WAITKIND_IGNORE);
};
@@ -4626,7 +4628,7 @@ fetch_inferior_event ()
the event. */
scoped_disable_commit_resumed disable_commit_resumed ("handling event");
- if (!do_target_wait (&ecs, TARGET_WNOHANG))
+ if (!do_target_wait (minus_one_ptid, &ecs, TARGET_WNOHANG))
{
infrun_debug_printf ("do_target_wait returned no event");
disable_commit_resumed.reset_and_commit ();