Thanks Joachim for your answer.
> For debugging of course, you would prefer not to write services
> on your own. Instead, you asked for a tool that tells you something
> about what is going on inside of search spaces
Only some notes to share with the community:
First of all I am a smalltalker and in that environment
there is an easy way to trap for tracing the message pump:
you can substitute the instance of the object to be traced
with another one of a class not implementing the interface
and redefine the method
#doesNotUnderstand: aMessage
where the action for trace is followed by a call to the original
object (Proxi pattern).
In my opinion the same could be done with the catch all
meth otherwise(Message) ... end
and the method name hiding where
feat methodToSpy: MethodToSpy % declare the method to
trace
...
Lbl = self.{Label methodToSpy(...)}
Msg = {Adjoin Message Lbl()} % build the real message
... % here code to Browse
{self Msg} % final call
Obviously all that code is terribly slow due to the rebuilt of the Message
(but in debugging speed is not the main concern ;-)).
Moreover all the application must be organized as "Object based" so that
every object could have the common ancestor class implementing the indirect
call.
Any suggestions ?
Adriano
-
Please send submissions to users@mozart-oz.org
and administriva mail to users-request@mozart-oz.org.
The Mozart Oz web site is at http://www.mozart-oz.org/.