[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
debugger extensions
One of the things that I find annoying when using pcl is that the debugger
support is quite bad. I understand that pcl is not a "supported" product
of Franz, but it would be nice if there was some way that I could make the
debugger a little bit more friendly/customizable. This would also be a
benifit for me writing my own packages. I have two specific suggestions;
1. If I hide a function (debugger::hide 'xyz:foo), then all internal
functions of xyz:foo should be hidden as well, similarly for compiler
generated functions like "RANDOM-FORMS".
2. Provide a hook so that I can tell you if a stack frame should be
displayed. I don't have a good idea what this would look like, perhaps
for now just boolean (DEBUGGER:SHOW-STACK-FRAME-P frame) with
documented access to the function and args. I'm mostly interested in
having a way to experiment with this, so it is not necessary that it be
an exported/supported interface (i.e. it can change in the future
without causing me undo pain).
Given item 1, the following zoom...
Evaluation stack:
->(ERROR "No matching method for the generic-function ~S,~@
when called with arguments ~S." #<Function BAR @ #x90ce19> ...)
(PCL::|(METHOD NO-APPLICABLE-METHOD (T))| #<Function BAR @ #x90ce19> 1)
(#:|..$RANDOM-FORMS$.a749b7b8.a749b7b9| 1)
((LAMBDA (X) (DECLARE #) ...) #<APPLE 44503001>)
(#:|..$RANDOM-FORMS$.a749b7b8.a749b7b9| #<APPLE 44503001>)
(PCL::NOTICE-METHODS-CHANGE-2 #<Function FOO @ #x90c541> (#<APPLE 44503001>))
(#:|.NOTICE-METHODS-CHANGE.a749b751| #<APPLE 44503001>)
(EVAL (FOO (PCL:MAKE-INSTANCE #)))
(EXCL::START-REBORN-LISP)
could be reduced to:
Evaluation stack:
->(ERROR "No matching method for the generic-function ~S,~@
when called with arguments ~S." #<Function BAR @ #x90ce19> ...)
(PCL::|(METHOD NO-APPLICABLE-METHOD (T))| #<Function BAR @ #x90ce19> 1)
((LAMBDA (X) (DECLARE #) ...) #<APPLE 44503001>)
(EVAL (FOO (PCL:MAKE-INSTANCE #)))
(EXCL::START-REBORN-LISP)
Just by hidding notice-methods-change{,-2} and random-forms, two of PCL's
favorites.