summaryrefslogtreecommitdiffstats
path: root/debug.scm
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:28 -0800
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:28 -0800
commit87b82b5822ca54228cfa6df29be3ad9d4bc47d16 (patch)
tree1eb4f87abd38bea56e08335d939e8171d5e7bfc7 /debug.scm
parentbd9733926076885e3417b74de76e4c9c7bc56254 (diff)
downloadslib-87b82b5822ca54228cfa6df29be3ad9d4bc47d16.tar.gz
slib-87b82b5822ca54228cfa6df29be3ad9d4bc47d16.zip
Import Upstream version 2d2upstream/2d2
Diffstat (limited to 'debug.scm')
-rw-r--r--debug.scm70
1 files changed, 44 insertions, 26 deletions
diff --git a/debug.scm b/debug.scm
index 58f6b03..0a913b4 100644
--- a/debug.scm
+++ b/debug.scm
@@ -1,9 +1,9 @@
;;;; "debug.scm" Utility functions for debugging in Scheme.
-;;; Copyright (C) 1991, 1992, 1993, 1995 Aubrey Jaffer.
+;;; Copyright (C) 1991, 1992, 1993, 1995, 1999 Aubrey Jaffer
;
-;Permission to copy this software, to redistribute it, and to use it
-;for any purpose is granted, subject to the following restrictions and
-;understandings.
+;Permission to copy this software, to modify it, to redistribute it,
+;to distribute modified versions, and to use it for any purpose is
+;granted, subject to the following restrictions and understandings.
;
;1. Any copy made of this software must include this copyright notice
;in full.
@@ -40,11 +40,9 @@
(if (list? (car exp)) exp (cdr exp))))
(cdr exp)))
((if) (for-each
- walk
- (if (list? (cadr exp)) (cdr exp) (cddr exp))))
- ((defmacro define-syntax) "should do something clever here")
- ((define)
- (proc exp))))))))
+ walk (if (list? (cadr exp)) (cdr exp) (cddr exp))))
+ ((defmacro define-syntax) (proc exp))
+ ((define) (proc exp))))))))
(if (eqv? #\# (peek-char port))
(read-line port)) ;remove `magic-number'
(do ((form (read port) (read port)))
@@ -59,22 +57,42 @@
form))))
(for-each-top-level-definition-in-file
file
- (lambda (form) (let ((sym (get-defined-symbol (cadr form))))
- (cond ((procedure? (slib:eval sym))
- (proc sym))))))))
+ (lambda (form)
+ (and (eqv? 'define (car form))
+ (let ((sym (get-defined-symbol (cadr form))))
+ (cond ((procedure? (slib:eval sym))
+ (proc sym)))))))))
-(define (debug:trace-all file)
- (for-each-top-level-defined-procedure-symbol-in-file
- file
- (lambda (sym)
- (slib:eval `(set! ,sym (trace:tracef ,sym ',sym))))))
-
-(define trace-all debug:trace-all)
-
-(define (debug:break-all file)
- (for-each-top-level-defined-procedure-symbol-in-file
- file
- (lambda (sym)
- (slib:eval `(set! ,sym (break:breakf ,sym ',sym))))))
+(define (trace-all file . ...)
+ (for-each
+ (lambda (file)
+ (for-each-top-level-defined-procedure-symbol-in-file
+ file
+ (lambda (sym)
+ (slib:eval `(set! ,sym (trace:trace-procedure 'trace ,sym ',sym))))))
+ (cons file ...)))
+(define (track-all file . ...)
+ (for-each
+ (lambda (file)
+ (for-each-top-level-defined-procedure-symbol-in-file
+ file
+ (lambda (sym)
+ (slib:eval `(set! ,sym (trace:trace-procedure 'track ,sym ',sym))))))
+ (cons file ...)))
+(define (stack-all file . ...)
+ (for-each
+ (lambda (file)
+ (for-each-top-level-defined-procedure-symbol-in-file
+ file
+ (lambda (sym)
+ (slib:eval `(set! ,sym (trace:trace-procedure 'stack ,sym ',sym))))))
+ (cons file ...)))
-(define break-all debug:break-all)
+(define (break-all file . ...)
+ (for-each
+ (lambda (file)
+ (for-each-top-level-defined-procedure-symbol-in-file
+ file
+ (lambda (sym)
+ (slib:eval `(set! ,sym (break:breakf ,sym ',sym))))))
+ (cons file ...)))