aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2023-01-14 18:52:27 +0100
committerTristan Gingold <tgingold@free.fr>2023-01-15 09:47:14 +0100
commita72c06fdfbf4a18bc8fc9728113f5a99ee25d6eb (patch)
treea18bf7eaf88005b2f898644fd120b7460aca0e81 /src/synth
parent5b59dda84a7eb8a48e94a75b9b3ad008514089ce (diff)
downloadghdl-a72c06fdfbf4a18bc8fc9728113f5a99ee25d6eb.tar.gz
ghdl-a72c06fdfbf4a18bc8fc9728113f5a99ee25d6eb.tar.bz2
ghdl-a72c06fdfbf4a18bc8fc9728113f5a99ee25d6eb.zip
synth: add Debug_Backtrace debug procedure
Diffstat (limited to 'src/synth')
-rw-r--r--src/synth/elab-vhdl_context-debug.adb13
-rw-r--r--src/synth/elab-vhdl_values-debug.adb6
2 files changed, 19 insertions, 0 deletions
diff --git a/src/synth/elab-vhdl_context-debug.adb b/src/synth/elab-vhdl_context-debug.adb
index 79b59187a..2ce44425a 100644
--- a/src/synth/elab-vhdl_context-debug.adb
+++ b/src/synth/elab-vhdl_context-debug.adb
@@ -73,4 +73,17 @@ package body Elab.Vhdl_Context.Debug is
begin
Debug_Elab_Tree_1 (Inst, 0);
end Debug_Elab_Tree;
+
+ procedure Debug_Backtrace (First : Synth_Instance_Acc)
+ is
+ Inst : Synth_Instance_Acc;
+ begin
+ Inst := First;
+ while Inst /= null loop
+ Debug_Synth_Instance (Inst);
+ Inst := Inst.Caller;
+ end loop;
+ end Debug_Backtrace;
+
+ pragma Unreferenced (Debug_Backtrace);
end Elab.Vhdl_Context.Debug;
diff --git a/src/synth/elab-vhdl_values-debug.adb b/src/synth/elab-vhdl_values-debug.adb
index 76e8caa0a..63718b55d 100644
--- a/src/synth/elab-vhdl_values-debug.adb
+++ b/src/synth/elab-vhdl_values-debug.adb
@@ -297,6 +297,12 @@ package body Elab.Vhdl_Values.Debug is
procedure Debug_Valtyp (V : Valtyp) is
begin
+ if V.Val = null then
+ Put ("*null*");
+ New_Line;
+ return;
+ end if;
+
case V.Val.Kind is
when Value_Memory
| Value_Const =>