From 7544b356948b9f263d07090f7c2e7032527496da Mon Sep 17 00:00:00 2001 From: Itamar Date: Sat, 4 Feb 2023 17:09:27 +0200 Subject: [PATCH] Kernel: Update registers in tracer when attaching to a stopped thread --- Kernel/Syscalls/ptrace.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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;