From ef7c762d03632698dfbaa56f9e20f42d24af2c9e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Tue, 24 Mar 1998 20:38:35 -0800
Subject: [PATCH] attempt to make fatal() write normal backtraces whenever
 possible...

Rev: src/error.c:1.13
---
 src/error.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/error.c b/src/error.c
index c2474a3185..c3a5550c2b 100644
--- a/src/error.c
+++ b/src/error.c
@@ -11,6 +11,8 @@
 #include "builtin_functions.h"
 #include "array.h"
 #include "object.h"
+#include "main.h"
+#include "builtin_functions.h"
 
 #undef ATTRIBUTE
 #define ATTRIBUTE(X)
@@ -161,7 +163,17 @@ void debug_fatal(char *fmt, ...) ATTRIBUTE((noreturn,format (printf, 1, 2)))
 #endif
 
   (void)VFPRINTF(stderr, fmt, args);
-  /* Insert dump routine call here */
+
+  fprintf(stderr,"Attempting to dump backlog (may fail).\n");
+
+  d_flag=t_flag=0;
+  push_text("Fatal error");
+  f_backtrace(0);
+  f_aggregate(2);
+  APPLY_MASTER("describe_backtrace",1);
+  if(sp[-1].type==T_STRING)
+    write_to_stderr(sp[-1].u.string->str, sp[-1].u.string->len);
+
   fflush(stderr);
   abort();
 }
-- 
GitLab