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); }