From 60822c12d0eca24a6ff295e3080b4457d9e9d72a Mon Sep 17 00:00:00 2001 From: Francois-Rene Rideau <tunes@google.com> Date: Fri, 25 Oct 2013 00:21:04 -0400 Subject: [PATCH] Non-empty backtraces for ABCL and ECL. --- uiop/image.lisp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/uiop/image.lisp b/uiop/image.lisp index 68233fc3..98484dee 100644 --- a/uiop/image.lisp +++ b/uiop/image.lisp @@ -94,7 +94,8 @@ This is designed to abstract away the implementation specific quit forms." "Print a backtrace, directly accessing the implementation" (declare (ignorable stream count)) #+abcl - (let ((*debug-io* stream)) (top-level::backtrace-command count)) + (dolist (frame (sys:backtrace)) + (println frame stream)) #+allegro (let ((*terminal-io* stream) (*standard-output* stream) @@ -117,7 +118,10 @@ This is designed to abstract away the implementation specific quit forms." (debug:*debug-print-length* *print-length*)) (debug:backtrace most-positive-fixnum stream)) #+ecl - (si::tpl-backtrace) + (let* ((backtrace (loop :for ihs :from 0 :below (si:ihs-top) + :collect (list (si::ihs-fun ihs) + (si::ihs-env ihs))))) + (dolist (frame (nreverse backtrace)) (writeln frame :stream stream))) #+lispworks (let ((dbg::*debugger-stack* (dbg::grab-stack nil :how-many (or count most-positive-fixnum))) -- GitLab