aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/synth/elab-debugger.adb12
-rw-r--r--src/synth/elab-debugger.ads5
2 files changed, 16 insertions, 1 deletions
diff --git a/src/synth/elab-debugger.adb b/src/synth/elab-debugger.adb
index e9f372dc3..0ff6a80e5 100644
--- a/src/synth/elab-debugger.adb
+++ b/src/synth/elab-debugger.adb
@@ -42,6 +42,7 @@ package body Elab.Debugger is
(
Reason_Init,
Reason_Break,
+ Reason_Time,
Reason_Error
);
@@ -836,7 +837,8 @@ package body Elab.Debugger is
end case;
-- Default state.
Exec_State := Exec_Run;
-
+ when Reason_Time =>
+ Exec_State := Exec_Run;
end case;
case Reason is
@@ -954,6 +956,14 @@ package body Elab.Debugger is
Debug (Reason_Break);
end Debug_Break;
+ procedure Debug_Time is
+ begin
+ Current_Instance := Root_Instance;
+ Current_Loc := Null_Node;
+
+ Debug (Reason_Time);
+ end Debug_Time;
+
procedure Debug_Leave (Inst : Synth_Instance_Acc) is
begin
if Exec_Instance = Inst then
diff --git a/src/synth/elab-debugger.ads b/src/synth/elab-debugger.ads
index 3376e3ba3..315337dd6 100644
--- a/src/synth/elab-debugger.ads
+++ b/src/synth/elab-debugger.ads
@@ -37,6 +37,9 @@ package Elab.Debugger is
procedure Debug_Leave (Inst : Synth_Instance_Acc);
+ -- Debug on a time breakpoint.
+ procedure Debug_Time;
+
-- To be called in case of execution error, like:
-- * index out of bounds.
procedure Debug_Error (Inst : Synth_Instance_Acc; Expr : Node);
@@ -54,6 +57,8 @@ package Elab.Debugger is
Help : Cst_String_Acc;
Proc : Menu_Procedure);
+ -- Prepare resume execution.
+ procedure Prepare_Continue;
-- Utilities for menu commands.