diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2021-05-31 13:00:32 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2021-07-14 23:21:30 -0400 |
commit | 3a849a3454a53684ca3d679697adb1bfb56596cc (patch) | |
tree | bee2c0eb1fac46adad4de1fefeda09d41c2aa14c /gdb/linux-nat.c | |
parent | ff77083572522d805e631b287b4b9db68f596503 (diff) | |
download | gdb-3a849a3454a53684ca3d679697adb1bfb56596cc.zip gdb-3a849a3454a53684ca3d679697adb1bfb56596cc.tar.gz gdb-3a849a3454a53684ca3d679697adb1bfb56596cc.tar.bz2 |
gdb: pass child_ptid and fork kind to target_ops::follow_fork
This is a small cleanup I think would be nice, that I spotted while
doing the following patch.
gdb/ChangeLog:
* target.h (struct target_ops) <follow_fork>: Add ptid and
target_waitkind parameters.
(target_follow_fork): Likewise.
* target.c (default_follow_fork): Likewise.
(target_follow_fork): Likewise.
* fbsd-nat.h (class fbsd_nat_target) <follow_fork>: Likewise.
* fbsd-nat.c (fbsd_nat_target::follow_fork): Likewise.
* linux-nat.h (class linux_nat_target) <follow_fork>: Likewise.
* linux-nat.c (linux_nat_target::follow_fork): Likewise.
* obsd-nat.h (class obsd_nat_target) <follow_fork>: Likewise.
* obsd-nat.c (obsd_nat_target::follow_fork): Likewise.
* remote.c (class remote_target) <follow_fork>: Likewise.
* target-debug.h (target_debug_print_target_waitkind): New.
* target-delegates.c: Re-generate.
Change-Id: I5421a542f2e19100a22b74cc333d2b235d0de3c8
Diffstat (limited to 'gdb/linux-nat.c')
-rw-r--r-- | gdb/linux-nat.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 2b52dbd..e4d0206 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -449,24 +449,19 @@ typedef std::unique_ptr<struct lwp_info, lwp_deleter> lwp_info_up; unchanged. */ void -linux_nat_target::follow_fork (bool follow_child, bool detach_fork) +linux_nat_target::follow_fork (ptid_t child_ptid, target_waitkind fork_kind, + bool follow_child, bool detach_fork) { if (!follow_child) { - struct lwp_info *child_lp = NULL; - int has_vforked; - ptid_t parent_ptid, child_ptid; - int parent_pid, child_pid; - - has_vforked = (inferior_thread ()->pending_follow.kind - == TARGET_WAITKIND_VFORKED); - parent_ptid = inferior_ptid; + bool has_vforked = fork_kind == TARGET_WAITKIND_VFORKED; + ptid_t parent_ptid = inferior_ptid; child_ptid = inferior_thread ()->pending_follow.value.related_pid; - parent_pid = parent_ptid.lwp (); - child_pid = child_ptid.lwp (); + int parent_pid = parent_ptid.lwp (); + int child_pid = child_ptid.lwp (); /* We're already attached to the parent, by default. */ - child_lp = add_lwp (child_ptid); + lwp_info *child_lp = add_lwp (child_ptid); child_lp->stopped = 1; child_lp->last_resume_kind = resume_stop; |