summaryrefslogtreecommitdiff
path: root/src/vhdl/simulate/debugger.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/simulate/debugger.adb')
-rw-r--r--src/vhdl/simulate/debugger.adb28
1 files changed, 21 insertions, 7 deletions
diff --git a/src/vhdl/simulate/debugger.adb b/src/vhdl/simulate/debugger.adb
index b3e7a90..83a241b 100644
--- a/src/vhdl/simulate/debugger.adb
+++ b/src/vhdl/simulate/debugger.adb
@@ -28,6 +28,7 @@ with Scanner;
with Tokens;
with Sem_Expr;
with Sem_Scopes;
+with Canon;
with Std_Names;
with Libraries;
with Std_Package;
@@ -1324,7 +1325,7 @@ package body Debugger is
when Iir_Kind_Entity_Declaration =>
-- Top of scopes.
- null;
+ Handler.all (N);
when Iir_Kind_Function_Body
| Iir_Kind_Procedure_Body =>
@@ -1530,6 +1531,7 @@ package body Debugger is
New_Line;
Annotate_Expand_Table;
+ Canon.Canon_Expression (Expr);
Mark (Marker, Expr_Pool);
@@ -1779,7 +1781,8 @@ package body Debugger is
P := E + 1;
end Parse_Command;
- procedure Help_Proc (Line : String) is
+ procedure Help_Proc (Line : String)
+ is
P : Natural;
Root : Menu_Entry_Acc := Menu_Top'access;
begin
@@ -1829,11 +1832,22 @@ package body Debugger is
Prompt : System.Address;
begin
-- Unless interractive, do not use the debugger.
- if Reason /= Reason_Internal_Debug then
- if not Flag_Interractive then
- return;
- end if;
- end if;
+ case Reason is
+ when Reason_Internal_Debug =>
+ null;
+ when Reason_Assert
+ | Reason_Error =>
+ if not Flag_Debugger then
+ return;
+ end if;
+ when Reason_Start
+ | Reason_Elab =>
+ if not Flag_Interractive then
+ return;
+ end if;
+ when Reason_Break =>
+ null;
+ end case;
Prompt := Prompt_Debug'Address;