summaryrefslogtreecommitdiff
path: root/gdb/linux-fork.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <dan@debian.org>2006-03-24 23:08:16 +0000
committerDaniel Jacobowitz <dan@debian.org>2006-03-24 23:08:16 +0000
commit1a97c76ee0fc8202bc42e95fcd64c56a866a5344 (patch)
treef8a7a3ccb4fb31e4b5cc30a65720af39c9fb2a93 /gdb/linux-fork.c
parent56e6302ac87ce280352297bc5298e9bdc489f8bf (diff)
downloadgdb-1a97c76ee0fc8202bc42e95fcd64c56a866a5344.tar.gz
* linux-nat.c (linux_ops_saved): New.
(super_mourn_inferior, kill_inferior, threaded, linux_nat_ops) (child_mourn_inferior, child_wait, linux_nat_create_inferior) (linux_nat_fetch_registers, linux_nat_store_registers) (linux_nat_child_post_startup_inferior, init_linux_nat_ops): Delete. (init_lwp_list): Don't set threaded. (add_lwp): Don't modify threaded. (delete_lwp): Don't mention non-threaded mode. (linux_nat_switch_fork): New. (linux_nat_attach): Update inferior_ptid. (linux_nat_wait): Handle num_lwps == 0 at entry. Don't check threaded flag. (linux_nat_kill): Handle pending forks and saved forks. (linux_nat_mourn_inferior): Handle saved forks. (linux_nat_pid_to_str): Don't use the LWP form when there is only one thread. (linux_target): Don't set to_wait, to_kill, or to_mourn_inferior. (linux_nat_add_target): New. (_initialize_linux_nat): Don't initialize the linux native target here. * linux-nat.h (linux_nat_add_target, linux_nat_switch_fork): New prototypes. * linux-fork.c: Include "linux-nat.h". (add_fork): Update initial PID. (fork_load_infrun_state): Call linux_nat_switch_fork. * Makefile.in (linux-fork.o): Update. * alpha-linux-nat.c (_initialize_alpha_linux_nat): Use linux_nat_add_target instead of add_target. * amd64-linux-nat.c (_initialize_amd64_linux_nat): Likewise. * arm-linux-nat.c (_initialize_arm_linux_nat): Likewise. * hppa-linux-nat.c (_initialize_hppa_linux_nat): Likewise. * ia64-linux-nat.c (_initialize_ia64_linux_nat): Likewise. * i386-linux-nat.c (_initialize_i386_linux_nat): Likewise. * m32r-linux-nat.c (_initialize_m32r_linux_nat): Likewise. * m68klinux-nat.c (_initialize_m68k_linux_nat): Likewise. * mips-linux-nat.c (_initialize_mips_linux_nat): Likewise. * ppc-linux-nat.c (_initialize_ppc_linux_nat): Likewise. * s390-nat.c (_initialize_s390_nat): Likewise. * sparc-linux-nat.c (_initialize_sparc_linux_nat): Likewise. * sparc64-linux-nat.c (_initialize_sparc64_linux_nat): Likewise.
Diffstat (limited to 'gdb/linux-fork.c')
-rw-r--r--gdb/linux-fork.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gdb/linux-fork.c b/gdb/linux-fork.c
index 88bea6169ba..bb4468268c2 100644
--- a/gdb/linux-fork.c
+++ b/gdb/linux-fork.c
@@ -27,6 +27,7 @@
#include "gdb_assert.h"
#include "gdb_string.h"
#include "linux-fork.h"
+#include "linux-nat.h"
#include <sys/ptrace.h>
#include <sys/wait.h>
@@ -84,7 +85,7 @@ add_fork (pid_t pid)
}
fp = XZALLOC (struct fork_info);
- fp->ptid = pid_to_ptid (pid);
+ fp->ptid = ptid_build (pid, pid, 0);
fp->num = ++highest_fork_num;
fp->next = fork_list;
fork_list = fp;
@@ -241,6 +242,8 @@ fork_load_infrun_state (struct fork_info *fp)
inferior_ptid = fp->ptid;
+ linux_nat_switch_fork (inferior_ptid);
+
if (fp->savedregs && fp->clobber_regs)
regcache_cpy (current_regcache, fp->savedregs);