* 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.
This commit is contained in:
Pedro Alves 2008-12-18 21:35:23 +00:00
parent 4e59450ef0
commit 0d14fc6327
3 changed files with 19 additions and 5 deletions

View File

@ -1,3 +1,12 @@
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,

View File

@ -600,15 +600,14 @@ static void
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 ();

View File

@ -857,6 +857,12 @@ linux_child_follow_fork (struct target_ops *ops, int follow_child)
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);