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)