diff options
author | Pedro Alves <palves@redhat.com> | 2008-07-09 22:23:05 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2008-07-09 22:23:05 +0000 |
commit | 3a3e9ee36f308152115225d25b59ac0cc2f35170 (patch) | |
tree | 80c0175248b732f52f5d6dda167dd92551ed000a /gdb/linux-nat.c | |
parent | 8ea051c51f64f1f720b12a7424c56ac31ff9a58b (diff) | |
download | gdb-3a3e9ee36f308152115225d25b59ac0cc2f35170.zip gdb-3a3e9ee36f308152115225d25b59ac0cc2f35170.tar.gz gdb-3a3e9ee36f308152115225d25b59ac0cc2f35170.tar.bz2 |
Adjust fork/vfork/exec to pass ptids around.
* target.h (struct target_waitstatus): Store related_pid as a ptid.
(inferior_has_forked, inferior_has_vforked, inferior_has_execd):
Take a ptid_t.
* breakpoint.h (struct breakpoint): Change forked_inferior_pid
type to ptid.
* breakpoint.c (print_it_typical, bpstat_check_location)
(print_one_breakpoint_location, set_raw_breakpoint_without_location)
(create_fork_vfork_event_catchpoint): Adjust.
* infrun.c (fork_event): Change parent_pid and child_pid types to
ptid.
(follow_exec, inferior_has_forked, inferior_has_vforked)
(inferior_has_execd): Take a ptid_t and don't trim it.
* linux-thread-db.c (thread_db_wait): Don't trim the returned ptid.
* linux-nat.c (linux_child_follow_fork): Adjust.
* inf-ptrace.c (inf_ptrace_wait): Adjust.
* inf-ttrace.c (inf_ttrace_wait): Adjust.
* win32-nat.c (get_win32_debug_event): Don't set related_pid.
Diffstat (limited to 'gdb/linux-nat.c')
-rw-r--r-- | gdb/linux-nat.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 0821e97..beec018 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -641,7 +641,7 @@ linux_child_follow_fork (struct target_ops *ops, int follow_child) parent_pid = ptid_get_lwp (last_ptid); if (parent_pid == 0) parent_pid = ptid_get_pid (last_ptid); - child_pid = last_status.value.related_pid; + child_pid = PIDGET (last_status.value.related_pid); if (! follow_child) { @@ -1693,7 +1693,7 @@ linux_handle_extended_wait (struct lwp_info *lp, int status, _("wait returned unexpected status 0x%x"), status); } - ourstatus->value.related_pid = new_pid; + ourstatus->value.related_pid = ptid_build (new_pid, new_pid, 0); if (event == PTRACE_EVENT_FORK) ourstatus->kind = TARGET_WAITKIND_FORKED; @@ -1725,7 +1725,8 @@ linux_handle_extended_wait (struct lwp_info *lp, int status, else { new_lp->resumed = 1; - ptrace (PTRACE_CONT, lp->waitstatus.value.related_pid, 0, + ptrace (PTRACE_CONT, + PIDGET (lp->waitstatus.value.related_pid), 0, status ? WSTOPSIG (status) : 0); } @@ -2958,7 +2959,7 @@ linux_nat_kill (void) if (last.kind == TARGET_WAITKIND_FORKED || last.kind == TARGET_WAITKIND_VFORKED) { - ptrace (PT_KILL, last.value.related_pid, 0, 0); + ptrace (PT_KILL, PIDGET (last.value.related_pid), 0, 0); wait (&status); } |