From fe02ff3a3abc61d2e6ad9aa9c37b2f6bed7938cc Mon Sep 17 00:00:00 2001 From: Coxxs <58-coxxs@users.noreply.git.ryujinx.app> Date: Sat, 21 Jun 2025 14:31:00 +0800 Subject: [PATCH] gdb: Fix ExecutionContext --- src/ARMeilleure/State/ExecutionContext.cs | 6 +++--- .../LightningJit/State/ExecutionContext.cs | 13 ++++++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/ARMeilleure/State/ExecutionContext.cs b/src/ARMeilleure/State/ExecutionContext.cs index c44c6e062..fa1a4a032 100644 --- a/src/ARMeilleure/State/ExecutionContext.cs +++ b/src/ARMeilleure/State/ExecutionContext.cs @@ -153,7 +153,7 @@ namespace ARMeilleure.State public void StepHandler() { - _stepCallback.Invoke(this); + _stepCallback?.Invoke(this); } public void RequestDebugStep() @@ -166,7 +166,7 @@ namespace ARMeilleure.State { if (Optimizations.EnableDebugging) { - DebugPc = Pc; // TODO: Is this the best place to update DebugPc? + DebugPc = Pc; } _breakCallback?.Invoke(this, address, imm); @@ -176,7 +176,7 @@ namespace ARMeilleure.State { if (Optimizations.EnableDebugging) { - DebugPc = Pc; // TODO: Is this the best place to update DebugPc? + DebugPc = Pc; } _supervisorCallback?.Invoke(this, address, imm); diff --git a/src/Ryujinx.Cpu/LightningJit/State/ExecutionContext.cs b/src/Ryujinx.Cpu/LightningJit/State/ExecutionContext.cs index fc75e5185..cb3c6c2af 100644 --- a/src/Ryujinx.Cpu/LightningJit/State/ExecutionContext.cs +++ b/src/Ryujinx.Cpu/LightningJit/State/ExecutionContext.cs @@ -1,3 +1,4 @@ +using ARMeilleure; using ARMeilleure.Memory; using ARMeilleure.State; using System; @@ -127,7 +128,7 @@ namespace Ryujinx.Cpu.LightningJit.State public void StepHandler() { - _stepCallback.Invoke(this); + _stepCallback?.Invoke(this); } public void RequestDebugStep() @@ -138,11 +139,21 @@ namespace Ryujinx.Cpu.LightningJit.State internal void OnBreak(ulong address, int imm) { + if (Optimizations.EnableDebugging) + { + DebugPc = Pc; + } + _breakCallback?.Invoke(this, address, imm); } internal void OnSupervisorCall(ulong address, int imm) { + if (Optimizations.EnableDebugging) + { + DebugPc = Pc; + } + _supervisorCallback?.Invoke(this, address, imm); }