diff --git a/mpact/sim/generic/BUILD b/mpact/sim/generic/BUILD
index 83e17fa..fce7e43 100644
--- a/mpact/sim/generic/BUILD
+++ b/mpact/sim/generic/BUILD
@@ -110,6 +110,7 @@
         "debug_command_shell_interface.h",
     ],
     deps = [
+        ":arch_state",
         ":core_debug_interface",
         "//mpact/sim/util/program_loader:elf_loader",
         "@com_google_absl//absl/container:btree",
diff --git a/mpact/sim/generic/core_debug_interface.h b/mpact/sim/generic/core_debug_interface.h
index 871b043..75fd5f6 100644
--- a/mpact/sim/generic/core_debug_interface.h
+++ b/mpact/sim/generic/core_debug_interface.h
@@ -74,6 +74,8 @@
 
   // Request that core stop running.
   virtual absl::Status Halt() = 0;
+  virtual absl::Status Halt(HaltReason halt_reason) = 0;
+  virtual absl::Status Halt(HaltReasonValueType halt_reason) = 0;
   // Step the core by num instructions.
   virtual absl::StatusOr<int> Step(int num) = 0;
   // Allow the core to free-run. The loop to run the instructions should be
diff --git a/mpact/sim/generic/debug_command_shell_interface.h b/mpact/sim/generic/debug_command_shell_interface.h
index 31e37ae..46689c0 100644
--- a/mpact/sim/generic/debug_command_shell_interface.h
+++ b/mpact/sim/generic/debug_command_shell_interface.h
@@ -11,6 +11,7 @@
 #include "absl/container/btree_map.h"
 #include "absl/functional/any_invocable.h"
 #include "absl/strings/string_view.h"
+#include "mpact/sim/generic/arch_state.h"
 #include "mpact/sim/generic/core_debug_interface.h"
 #include "mpact/sim/util/program_loader/elf_program_loader.h"
 
@@ -29,8 +30,9 @@
 
   // Each core must provide the debug interface and the elf loader.
   struct CoreAccess {
-    CoreDebugInterface *debug_interface;
+    CoreDebugInterface *debug_interface = nullptr;
     std::function<util::ElfProgramLoader *()> loader_getter;
+    ArchState *state = nullptr;
     absl::btree_map<int, uint64_t> breakpoint_map;
     int breakpoint_index = 0;
     absl::btree_map<int, WatchpointInfo> watchpoint_map;
diff --git a/mpact/sim/util/renode/renode_cli_top.cc b/mpact/sim/util/renode/renode_cli_top.cc
index a56a715..2c0947e 100644
--- a/mpact/sim/util/renode/renode_cli_top.cc
+++ b/mpact/sim/util/renode/renode_cli_top.cc
@@ -310,7 +310,12 @@
 
 void RenodeCLITop::CLIRequestHalt(HaltReason halt_reason,
                                   const Instruction *inst) {
-  (void)top_->Halt();
+  (void)top_->Halt(halt_reason);
+}
+
+void RenodeCLITop::CLIRequestHalt(HaltReasonValueType halt_reason,
+                                  const Instruction *inst) {
+  (void)top_->Halt(halt_reason);
 }
 
 }  // namespace renode
diff --git a/mpact/sim/util/renode/renode_cli_top.h b/mpact/sim/util/renode/renode_cli_top.h
index 8e9e4bf..5945565 100644
--- a/mpact/sim/util/renode/renode_cli_top.h
+++ b/mpact/sim/util/renode/renode_cli_top.h
@@ -79,6 +79,9 @@
   // Wait for free run to complete.
   virtual absl::Status CLIWait();
   virtual absl::StatusOr<RunStatus> CLIGetRunStatus();
+  virtual void CLIRequestHalt(HaltReason halt_reason, const Instruction *inst);
+  virtual void CLIRequestHalt(HaltReasonValueType halt_reason,
+                              const Instruction *inst);
   virtual absl::StatusOr<HaltReasonValueType> CLIGetLastHaltReason();
   // Register access by register name.
   virtual absl::StatusOr<uint64_t> CLIReadRegister(const std::string &name);
@@ -99,8 +102,6 @@
   virtual absl::Status CLIClearAllSwBreakpoints();
   virtual absl::StatusOr<Instruction *> CLIGetInstruction(uint64_t address);
   virtual absl::StatusOr<std::string> CLIGetDisassembly(uint64_t address);
-  // Called when a halt is requested.
-  virtual void CLIRequestHalt(HaltReason halt_reason, const Instruction *inst);
 
  protected:
   // Perform the action after having obtained the lock that depends on the CLI
diff --git a/mpact/sim/util/renode/renode_debug_interface.h b/mpact/sim/util/renode/renode_debug_interface.h
index b7cfa69..401da5b 100644
--- a/mpact/sim/util/renode/renode_debug_interface.h
+++ b/mpact/sim/util/renode/renode_debug_interface.h
@@ -74,6 +74,12 @@
   absl::Status Halt() final {
     return absl::InternalError("Halt: Not implemented");
   }
+  absl::Status Halt(HaltReason) final {
+    return absl::InternalError("Halt: Not implemented");
+  }
+  absl::Status Halt(HaltReasonValueType) {
+    return absl::InternalError("Halt: Not implemented");
+  }
   absl::Status Wait() final {
     return absl::InternalError("Wait: Not implemented");
   }
