diff options
author | Andrew Burgess <aburgess@redhat.com> | 2022-05-09 17:51:54 +0100 |
---|---|---|
committer | Andrew Burgess <aburgess@redhat.com> | 2024-03-25 17:25:06 +0000 |
commit | 07505b613a0605ef42a004364ab8ccb70fd3c8eb (patch) | |
tree | 07fb43b0b20d37fa1677d0b86d152d687d5525e8 /gdb/infrun.c | |
parent | 198ff6ff819c240545f9fc68b39636fd376d4ba9 (diff) | |
download | gdb-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.c | 12 |
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 (); |