>>>>> "Chisheng" == Chisheng Huang <[EMAIL PROTECTED]> writes:
Chisheng> Does the :WHEREIN option of TRACE work? If you cut and paste the
code below
Chisheng> into a CMUCL REPL, you'll get a warning message and be thrown
into the
Chisheng> debugger.
Yes, it appears that :wherein option of trace does work:
(defun bar (x) (list x 'a))
(compile 'bar)
(defun foo (x) (cons x (bar x)))
(compile 'foo)
(defun zot (x) (bar x))
(trace bar :wherein foo)
(compile 'zot)
(foo 'z) =>
0: (BAR Z)
0: BAR returned (Z A)
(Z Z A)
(zot 'a) =>
(A A)
I suspect the :wherein option is broken with respect to methods.
Support for tracing methods is fairly new.
With some experimentation, (trace x :wherein call-x) could work, but
call-x doesn't appear in the traceback of X, perhaps because of some
tail call or something. If CALL-X is made more complex,
(pcl:fast-method call-x (babu)) appears in the traceback, but is
probably not recognized by :wherein as a valid containing call.
Some work needs to be done if this is really needed.
Ray