+2001-11-21 Kevin Buettner <kevinb@redhat.com>
+
+ * lin-lwp.c (lin_lwp_attach_lwp): Make sure SIGCHLD is in set of
+ blocked signals.
+
+ * lin-lwp.c (lin_lwp_attach_lwp): Mark main thread as stopped.
+
2001-11-20 Jim Blandy <jimb@redhat.com>
* target.h (TARGET_RANGE_PROFITABLE_FOR_HW_WATCHPOINT): Delete
gdb_assert (is_lwp (ptid));
+ /* Make sure SIGCHLD is blocked. We don't want SIGCHLD events
+ to interrupt either the ptrace() or waitpid() calls below. */
+ if (! sigismember (&blocked_mask, SIGCHLD))
+ {
+ sigaddset (&blocked_mask, SIGCHLD);
+ sigprocmask (SIG_BLOCK, &blocked_mask, NULL);
+ }
+
if (verbose)
printf_filtered ("[New %s]\n", target_pid_to_str (ptid));
lp->stopped = 1;
}
+ else
+ {
+ /* We assume that the LWP representing the original process
+ is already stopped. Mark it as stopped in the data structure
+ that the lin-lwp layer uses to keep track of threads. Note
+ that this won't have already been done since the main thread
+ will have, we assume, been stopped by an attach from a
+ different layer. */
+ lp->stopped = 1;
+ }
}
static void