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