static int
resume_set_callback (struct lwp_info *lp)
{
+ inferior *inf = find_inferior_ptid (linux_target, lp->ptid);
+ gdb_assert (inf != nullptr);
+
+ ///* When we are waiting for a detached vfork child to exec or exit,
+ // breakpoints are removed, so only let the */
+
+ //if (inf->thread_waiting_for_vfork_done != nullptr
+ // && inf->thread_waiting_for_vfork_done->ptid != lp->ptid)
+ // return 0;
+
+ //if (inf->pending_detach)
+ // return 0;
+
lp->resumed = 1;
lp->last_resume_kind = resume_continue;
+
return 0;
}
if (event == PTRACE_EVENT_VFORK_DONE)
{
- if (current_inferior ()->waiting_for_vfork_done)
- {
- linux_nat_debug_printf
- ("Got expected PTRACE_EVENT_VFORK_DONE from LWP %ld: stopping",
- lp->ptid.lwp ());
-
- ourstatus->kind = TARGET_WAITKIND_VFORK_DONE;
- return 0;
- }
-
linux_nat_debug_printf
- ("Got PTRACE_EVENT_VFORK_DONE from LWP %ld: ignoring", lp->ptid.lwp ());
-
- return 1;
+ ("Got PTRACE_EVENT_VFORK_DONE from LWP %ld: stopping", lp->ptid.lwp ());
+ ourstatus->kind = TARGET_WAITKIND_VFORK_DONE;
+ return 0;
}
internal_error (__FILE__, __LINE__,