Code:
~/code/irc$ cat trace.scm (define (foo x) x)
(define (bar) (foo 0))
(define (test) (foo 1) (bar))
(trace foo)
(test) ~/code/irc$ gsi trace.scm | > (foo 1) | 1 | > (foo 0) | 0
Problem:
Can I control trace where I can say "trace foo, but not when it's called by bar".
I.e. rather than just saying "trace this function", I would like to be able to say:
(trace foo predicate)
where predicate is a function that takes as input the "stack" frame, and as output creates a #t / #f, which decides whether this particular trace should be printed
On a side note -- all the cool debugging functions in Gambit -- is this part of the 100K LOC scheme or 50K LOC hand written C? (hoping it's the former)