diff options
Diffstat (limited to 'gdb/gdbserver/linux-low.c')
-rw-r--r-- | gdb/gdbserver/linux-low.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 7c396ae..dfa7fba 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -1608,15 +1608,10 @@ linux_detach_lwp_callback (thread_info *thread) } static int -linux_detach (int pid) +linux_detach (process_info *process) { - struct process_info *process; struct lwp_info *main_lwp; - process = find_process_pid (pid); - if (process == NULL) - return -1; - /* As there's a step over already in progress, let it finish first, otherwise nesting a stabilize_threads operation on top gets real messy. */ @@ -1638,9 +1633,9 @@ linux_detach (int pid) /* Detach from the clone lwps first. If the thread group exits just while we're detaching, we must reap the clone lwps before we're able to reap the leader. */ - for_each_thread (pid, linux_detach_lwp_callback); + for_each_thread (process->pid, linux_detach_lwp_callback); - main_lwp = find_lwp_pid (ptid_t (pid)); + main_lwp = find_lwp_pid (ptid_t (process->pid)); linux_detach_one_lwp (main_lwp); the_target->mourn (process); @@ -1680,12 +1675,12 @@ linux_mourn (struct process_info *process) } static void -linux_join (int pid) +linux_join (process_info *proc) { int status, ret; do { - ret = my_waitpid (pid, &status, 0); + ret = my_waitpid (proc->pid, &status, 0); if (WIFEXITED (status) || WIFSIGNALED (status)) break; } while (ret != -1 || errno != ECHILD); |