[squeak-dev] The better debugger support by extending an Object protocol

Igor Stasenko siguctua at gmail.com
Mon Sep 7 15:02:01 UTC 2009


Hello guys,
i'd like to discuss with you an idea of having a specific methods in
Object class for a better and more clever behavior when debugging.

For those of you who are using different kinds of proxies, the main
problem with them that you should override the #printOn:
or #printString methods in order to behave them similar to what
original(proxied) object should be,
but from other side, especially for debugging purposes, this incurs a
major inconvenience, because you often need to differentiate between
the real object and object proxy while debugging. Because if proxy
behaves similar to proxied object while printing, you can't really
make a difference when looking at it.

So, i thought that a nice solution would be to extend an Object
protocol especially for debugging purposes by adding
#debugPrintOn:
method
and change the debugger to use this message, instead of #printOn: for
displaying objects in inspector panels.

Here is the default implementation of

Object>>debugPrintOn: aStream
  ^ self printOn: aStream

And, as you may guess, now the proxy could choose to behave
differently depending on context.

P.S. Maybe i'm missing a point, and there are already the existing
good practices how to get around this.. if so, then please tell me.

-- 
Best regards,
Igor Stasenko AKA sig.



More information about the Squeak-dev mailing list