don't send SIGCONT when sending SIGSTOP derived from PTRACE_ATTACH
refs #747
This commit is contained in:
@ -1258,7 +1258,7 @@ done:
|
|||||||
/* Wake up the target only when stopped by ptrace-reporting */
|
/* Wake up the target only when stopped by ptrace-reporting */
|
||||||
sched_wakeup_thread(tthread, PS_TRACED | PS_STOPPED);
|
sched_wakeup_thread(tthread, PS_TRACED | PS_STOPPED);
|
||||||
}
|
}
|
||||||
else if(sig == SIGCONT || ptracecont){
|
else if(sig == SIGCONT || ptracecont == 1){
|
||||||
/* Wake up the target only when stopped by SIGSTOP */
|
/* Wake up the target only when stopped by SIGSTOP */
|
||||||
sched_wakeup_thread(tthread, PS_STOPPED);
|
sched_wakeup_thread(tthread, PS_STOPPED);
|
||||||
tthread->proc->status = PS_RUNNING;
|
tthread->proc->status = PS_RUNNING;
|
||||||
|
|||||||
@ -4987,7 +4987,7 @@ static int ptrace_attach(int pid)
|
|||||||
info.si_signo = SIGSTOP;
|
info.si_signo = SIGSTOP;
|
||||||
info.si_code = SI_USER;
|
info.si_code = SI_USER;
|
||||||
info._sifields._kill.si_pid = proc->pid;
|
info._sifields._kill.si_pid = proc->pid;
|
||||||
error = do_kill(mythread, pid, -1, SIGSTOP, &info, 1);
|
error = do_kill(mythread, pid, -1, SIGSTOP, &info, 2);
|
||||||
if (error < 0) {
|
if (error < 0) {
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user