diff --git a/Kernel/Syscalls/ptrace.cpp b/Kernel/Syscalls/ptrace.cpp index 713cfcc019..1d266c30f6 100644 --- a/Kernel/Syscalls/ptrace.cpp +++ b/Kernel/Syscalls/ptrace.cpp @@ -56,7 +56,9 @@ static ErrorOr handle_ptrace(Kernel::Syscall::SC_ptrace_params const& p } TRY(peer_process.start_tracing_from(caller.pid())); SpinlockLocker lock(peer->get_lock()); - if (peer->state() != Thread::State::Stopped) { + if (peer->state() == Thread::State::Stopped) { + peer_process.tracer()->set_regs(peer->get_register_dump_from_stack()); + } else { peer->send_signal(SIGSTOP, &caller); } return 0;