18 Debugging tools
(require (planet untyped/unlib/debug)) |
Utilities for printing the runtime values of variables for debugging purposes, with minimal disruption to code structure.
(debug-enabled?) → boolean? |
(debug-enabled? val) → void? |
val : boolean? |
Boolean parameter for enabling or disabling the printing of debugging information. Defaults to #t.
(current-debug-printer) → (-> string? any void?) |
(current-debug-printer proc) → void? |
proc : (-> string? any void?) |
Parameter controlling the formatting of printed debugging information. Value must be a procedure that takes a message and a value and returns void. The default value prints the message and a colon on one line and pretty-prints the value (slightly indented) on subsequent lines.
(debug val) → any |
val : any |
Prints val and returns it transparently.
Examples: | ||||||
> (length (debug "message" (make-list 5 (iota 10)))) | ||||||
| ||||||
5 |
(debug* proc arg ) → any |
proc : procedure? |
arg : any |
Applies proc to args and prints and returns the return value transparently.
Examples: | ||
> (debug* "message" * 2 2) | ||
| ||
4 |
(define-debug id expr) |
Expands to a define form that prints the value of id as a side effect.
Examples: | ||
| ||
|
(let-debug ([id expr] ) expr ) |
Expands to a let form that prints the value of each id as it is assigned.
Examples: | ||||
| ||||
| ||||
7 |
(let*-debug ([id expr] ) expr ) |
Expands to a let* form that prints the value of each id as it is assigned.
Examples: | |||
| |||
| |||
reference to undefined identifier: b |
(letrec-debug ([id expr] ) expr ) |
Expands to a letrec form that prints the value of each id as it is assigned.
Examples: | |||
| |||
| |||
reference to undefined identifier: b |