gdb
[deliverable/binutils-gdb.git] / gdb / linux-nat.c
index 08f49e484c98a83a43c3309081844ef2a8272f15..641a619727cce8ba78d616294c9367f38751685d 100644 (file)
@@ -943,18 +943,36 @@ linux_child_insert_fork_catchpoint (int pid)
   return !linux_supports_tracefork (pid);
 }
 
+static int
+linux_child_remove_fork_catchpoint (int pid)
+{
+  return 0;
+}
+
 static int
 linux_child_insert_vfork_catchpoint (int pid)
 {
   return !linux_supports_tracefork (pid);
 }
 
+static int
+linux_child_remove_vfork_catchpoint (int pid)
+{
+  return 0;
+}
+
 static int
 linux_child_insert_exec_catchpoint (int pid)
 {
   return !linux_supports_tracefork (pid);
 }
 
+static int
+linux_child_remove_exec_catchpoint (int pid)
+{
+  return 0;
+}
+
 static int
 linux_child_set_syscall_catchpoint (int pid, int needed, int any_count,
                                    int table_size, int *table)
@@ -1458,7 +1476,10 @@ lin_lwp_attach_lwp (ptid_t ptid)
 
       status = linux_nat_post_attach_wait (ptid, 0, &cloned, &signalled);
       if (!WIFSTOPPED (status))
-       return -1;
+       {
+         restore_child_signals_mask (&prev_mask);
+         return -1;
+       }
 
       lp = add_lwp (ptid);
       lp->stopped = 1;
@@ -5214,8 +5235,11 @@ static void
 linux_target_install_ops (struct target_ops *t)
 {
   t->to_insert_fork_catchpoint = linux_child_insert_fork_catchpoint;
+  t->to_remove_fork_catchpoint = linux_child_remove_fork_catchpoint;
   t->to_insert_vfork_catchpoint = linux_child_insert_vfork_catchpoint;
+  t->to_remove_vfork_catchpoint = linux_child_remove_vfork_catchpoint;
   t->to_insert_exec_catchpoint = linux_child_insert_exec_catchpoint;
+  t->to_remove_exec_catchpoint = linux_child_remove_exec_catchpoint;
   t->to_set_syscall_catchpoint = linux_child_set_syscall_catchpoint;
   t->to_pid_to_exec_file = linux_child_pid_to_exec_file;
   t->to_post_startup_inferior = linux_child_post_startup_inferior;
This page took 0.024026 seconds and 4 git commands to generate.