/usr/share/guile/2.0/ice-9
NameSizeModeActions
and-let-star.scm25930644editdlrm
binary-ports.scm19210644editdlrm
boot-9.scm1547200644editdlrm
buffered-input.scm49350644editdlrm
calling.scm107900644editdlrm
channel.scm53120644editdlrm
command-line.scm186550644editdlrm
common-list.scm91600644editdlrm
control.scm40360644editdlrm
curried-definitions.scm18290644editdlrm
debug.scm11140644editdlrm
deprecated.scm319930644editdlrm
documentation.scm74320644editdlrm
eval-string.scm29970644editdlrm
eval.scm213540644editdlrm
expect.scm56280644editdlrm
format.scm762840644editdlrm
ftw.scm247530644editdlrm
futures.scm111860644editdlrm
gap-buffer.scm103840644editdlrm
getopt-long.scm168880644editdlrm
hash-table.scm18130644editdlrm
hcons.scm26140644editdlrm
history.scm23430644editdlrm
i18n.scm177780644editdlrm
iconv.scm37350644editdlrm
lineio.scm39410644editdlrm
list.scm13190644editdlrm
local-eval.scm99460644editdlrm
ls.scm32750644editdlrm
mapping.scm49550644editdlrm
match.scm20450644editdlrm
match.upstream.scm364590644editdlrm
networking.scm34070644editdlrm
null.scm11570644editdlrm
occam-channel.scm74360644editdlrm
optargs.scm161230644editdlrm
poe.scm33820644editdlrm
poll.scm61660644editdlrm
popen.scm58060644editdlrm
posix.scm27930644editdlrm
pretty-print.scm162110644editdlrm
psyntax-pp.scm1667740644editdlrm
psyntax.scm1471180644editdlrm
q.scm42970644editdlrm
quasisyntax.scm53480644editdlrm
r4rs.scm96450644editdlrm
r5rs.scm16020644editdlrm
r6rs-libraries.scm91640644editdlrm
rdelim.scm76480644editdlrm
readline.scm97860644editdlrm
receive.scm10820644editdlrm
regex.scm90840644editdlrm
runq.scm83790644editdlrm
rw.scm10470644editdlrm
safe-r5rs.scm38140644editdlrm
safe.scm12750644editdlrm
save-stack.scm21970644editdlrm
scm-style-repl.scm119860644editdlrm
serialize.scm38590644editdlrm
session.scm181430644editdlrm
slib.scm15830644editdlrm
stack-catch.scm19830644editdlrm
streams.scm74880644editdlrm
string-fun.scm87980644editdlrm
syncase.scm15560644editdlrm
threads.scm63880644editdlrm
time.scm20880644editdlrm
top-repl.scm28120644editdlrm
unicode.scm10050644editdlrm
vlist.scm220810644editdlrm
weak-vector.scm12880644editdlrm
Edit: /usr/share/guile/2.0/ice-9/save-stack.scm (2197B)
;;; -*- mode: scheme; coding: utf-8; -*- ;;;; Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010 ;;;; Free Software Foundation, Inc. ;;;; ;;;; This library is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU Lesser General Public ;;;; License as published by the Free Software Foundation; either ;;;; version 3 of the License, or (at your option) any later version. ;;;; ;;;; This library is distributed in the hope that it will be useful, ;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;;;; Lesser General Public License for more details. ;;;; ;;;; You should have received a copy of the GNU Lesser General Public ;;;; License along with this library; if not, write to the Free Software ;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ;;;; ;;; Commentary: ;;; An older approack to debugging, in which the user installs a pre-unwind ;;; handler that saves the stack at the time of the error. The last stack can ;;; then be debugged later. ;;; ;;; Code: (define-module (ice-9 save-stack) ;; Replace deprecated root-module bindings, if present. #:replace (stack-saved? the-last-stack save-stack)) ;; FIXME: stack-saved? is broken in the presence of threads. (define stack-saved? #f) (define the-last-stack (make-fluid)) (define (save-stack . narrowing) (if (not stack-saved?) (begin (let ((stacks (fluid-ref %stacks))) (fluid-set! the-last-stack ;; (make-stack obj inner outer inner outer ...) ;; ;; In this case, cut away the make-stack frame, the ;; save-stack frame, and then narrow as specified by the ;; user, delimited by the nearest start-stack invocation, ;; if any. (apply make-stack #t 2 (if (pair? stacks) (cdar stacks) 0) narrowing))) (set! stack-saved? #t))))