+2008-12-18 Pedro Alves <pedro@codesourcery.com>
+
+ * linux-nat.c (linux_child_follow_fork): If following the child,
+ and not detaching the parent, also add the child fork to the fork
+ list.
+ * linux-fork.c (linux_fork_context): Remove dead error call.
+ Assert that the incoming newfp argument is not null. Do not add a
+ new fork for inferior_ptid. Assert that there is one already.
+
2008-12-16 Tristan Gingold <gingold@adacore.com>
* inflow.c: Remove old_sigio, handle_sigio, old_fcntl_flags,
linux_fork_context (struct fork_info *newfp, int from_tty)
{
/* Now we attempt to switch processes. */
- struct fork_info *oldfp = find_fork_ptid (inferior_ptid);
+ struct fork_info *oldfp;
ptid_t ptid;
int id, i;
- if (!newfp)
- error (_("No such fork/process"));
+ gdb_assert (newfp != NULL);
- if (!oldfp)
- oldfp = add_fork (ptid_get_pid (inferior_ptid));
+ oldfp = find_fork_ptid (inferior_ptid);
+ gdb_assert (oldfp != NULL);
fork_save_infrun_state (oldfp, 1);
remove_breakpoints ();
if (!fp)
fp = add_fork (parent_pid);
fork_save_infrun_state (fp, 0);
+
+ /* Also add an entry for the child fork. */
+ fp = find_fork_pid (child_pid);
+ if (!fp)
+ fp = add_fork (child_pid);
+ fork_save_infrun_state (fp, 0);
}
else
target_detach (NULL, 0);