>>>>> "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


Reply via email to