[#58120] ExecutionMode: Move `SingleStepBlocking` setting to Emulation Submodule src/Infrastructure 4a0cb98b4..aca94e822: > [#58120] MonitorCommands: Add SingleStepBlocking info for ExecutionMode > [#58120] GDB: Remove `BlockOnStep` setting > [#58120] ExecutionMode: Move `SingleStepBlocking` setting to Emulation > [#58120] MonitorCommands: Print possible values if Enum value isn't found > [#58120] MonitorCommands: Simplify Enum-value-not-found logic > [#58120] MonitorCommands: Extract creating string with Enum values > [#58120] MonitorCommands: Remove repetition in Enum suggestions > [#58120] Xtensa: Pass `IsSingleStepMode` instead of `ExecutionMode`
diff --git a/src/Infrastructure b/src/Infrastructure index 6051fed..8f76c22 160000 --- a/src/Infrastructure +++ b/src/Infrastructure
@@ -1 +1 @@ -Subproject commit 6051fed8acdfe58f9e60d72eda56132827d3cef3 +Subproject commit 8f76c2265b2607fad7beed11825118e4d4766690
diff --git a/src/Plugins/VerilatorPlugin/Verilated/Peripherals/VerilatedCPU.cs b/src/Plugins/VerilatorPlugin/Verilated/Peripherals/VerilatedCPU.cs index 097f91b..73845b8 100644 --- a/src/Plugins/VerilatorPlugin/Verilated/Peripherals/VerilatedCPU.cs +++ b/src/Plugins/VerilatorPlugin/Verilated/Peripherals/VerilatedCPU.cs
@@ -193,8 +193,7 @@ case ExecutionMode.Continuous: verilatedPeripheral.Send(ActionType.SingleStepMode, 0, 0); break; - case ExecutionMode.SingleStepNonBlocking: - case ExecutionMode.SingleStepBlocking: + case ExecutionMode.SingleStep: verilatedPeripheral.Send(ActionType.SingleStepMode, 0, 1); break; }
diff --git a/src/Plugins/VerilatorPlugin/Verilated/Peripherals/VerilatedRiscV32.cs b/src/Plugins/VerilatorPlugin/Verilated/Peripherals/VerilatedRiscV32.cs index 11f7328..f3ab007 100644 --- a/src/Plugins/VerilatorPlugin/Verilated/Peripherals/VerilatedRiscV32.cs +++ b/src/Plugins/VerilatorPlugin/Verilated/Peripherals/VerilatedRiscV32.cs
@@ -1,5 +1,5 @@ // -// Copyright (c) 2010-2023 Antmicro +// Copyright (c) 2010-2024 Antmicro // // This file is licensed under the MIT License. // Full license text is available in 'licenses/MIT.txt'. @@ -62,12 +62,13 @@ return mapping.Values.OrderBy(x => x.Index); } - public void EnterSingleStepModeSafely(HaltArguments args, bool? blocking = null) + public void EnterSingleStepModeSafely(HaltArguments args) { // this method should only be called from CPU thread, // but we should check it anyway CheckCpuThreadId(); - ChangeExecutionModeToSingleStep(blocking); + + ExecutionMode = ExecutionMode.SingleStep; UpdateHaltedState(); InvokeHalted(args);
diff --git a/tools/sel4_extensions/seL4Extensions.cs b/tools/sel4_extensions/seL4Extensions.cs index 7eadc60..541e233 100644 --- a/tools/sel4_extensions/seL4Extensions.cs +++ b/tools/sel4_extensions/seL4Extensions.cs
@@ -1,5 +1,5 @@ // -// Copyright (c) 2010-2022 Antmicro +// Copyright (c) 2010-2024 Antmicro // // This file is licensed under the MIT License. // Full license text is available in 'licenses/MIT.txt'. @@ -291,7 +291,7 @@ // We changed context, remove this hook as we don't need it anymore cpu.RemoveHook(address, HandleThreadSwitch); cpu.Pause(); - cpu.EnterSingleStepModeSafely(new HaltArguments(HaltReason.Breakpoint, cpu.Id, address, BreakpointType.MemoryBreakpoint), true); + cpu.EnterSingleStepModeSafely(new HaltArguments(HaltReason.Breakpoint, cpu.Id, address, BreakpointType.MemoryBreakpoint)); } private void HandleBreakpoint(ICpuSupportingGdb cpu, ulong address) @@ -304,7 +304,7 @@ ClearTemporaryBreakpoint(address, threadName); cpu.Pause(); - cpu.EnterSingleStepModeSafely(new HaltArguments(HaltReason.Breakpoint, cpu.Id, address, BreakpointType.MemoryBreakpoint), true); + cpu.EnterSingleStepModeSafely(new HaltArguments(HaltReason.Breakpoint, cpu.Id, address, BreakpointType.MemoryBreakpoint)); } private void HandleExitUserspace(ICpuSupportingGdb cpu, ulong address) @@ -315,7 +315,7 @@ } cpu.Pause(); - cpu.EnterSingleStepModeSafely(new HaltArguments(HaltReason.Breakpoint, cpu.Id, address, BreakpointType.MemoryBreakpoint), true); + cpu.EnterSingleStepModeSafely(new HaltArguments(HaltReason.Breakpoint, cpu.Id, address, BreakpointType.MemoryBreakpoint)); if(exitUserspaceMode == ExitUserspaceMode.Once) { cpu.RemoveHook(address, HandleExitUserspace); @@ -385,7 +385,7 @@ { pendingThreadName = null; cpu.Pause(); - cpu.EnterSingleStepModeSafely(new HaltArguments(HaltReason.Breakpoint, cpu.Id, address, BreakpointType.MemoryBreakpoint), true); + cpu.EnterSingleStepModeSafely(new HaltArguments(HaltReason.Breakpoint, cpu.Id, address, BreakpointType.MemoryBreakpoint)); } }