From b932905053994109b2fcbd4e4749219de78ea31d Mon Sep 17 00:00:00 2001 From: Coxxs <58-coxxs@users.noreply.git.ryujinx.app> Date: Tue, 24 Jun 2025 15:40:10 +0800 Subject: [PATCH] gdb: Interrupt at currently selected thread --- src/Ryujinx.HLE/Debugger/Debugger.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Ryujinx.HLE/Debugger/Debugger.cs b/src/Ryujinx.HLE/Debugger/Debugger.cs index d32fa2c99..c94f142cd 100644 --- a/src/Ryujinx.HLE/Debugger/Debugger.cs +++ b/src/Ryujinx.HLE/Debugger/Debugger.cs @@ -222,7 +222,7 @@ namespace Ryujinx.HLE.Debugger { case BreakInMessage: Logger.Notice.Print(LogClass.GdbStub, "Break-in requested"); - CommandQuery(); + CommandInterrupt(); break; case SendNackMessage: @@ -731,6 +731,18 @@ namespace Ryujinx.HLE.Debugger Reply($"T05thread:{cThread:x};"); } + void CommandInterrupt() + { + // GDB is requesting an interrupt. Stop everything. + DebugProcess.DebugStop(); + if (gThread == null || !GetThreads().Any(x => x.ThreadUid == gThread.Value)) + { + gThread = cThread = DebugProcess.GetThreadUids().First(); + } + + Reply($"T02thread:{gThread:x};"); + } + void CommandContinue(ulong? newPc) { if (newPc.HasValue)