While testing proxy classes that inherit from ProtoObject, I frequently get myself into a bad situation where Squeak is trying to open a debugger, but apparently encountering an error while trying to open it. It then tries to open a debugger on *that* but has the same problem.
Of course, the image won't last long at this point as the many thousands of suspended processes ready to be debugged quickly chew up memory.
It's easy to reproduce:
ProtoObject basicNew "print it"
Does anyone know how this can be made debuggable with the debugger (e.g. "debuggerable" :) )?
Thanks! Chris
On 29-Jan-05, at AM 03:01, Chris Muller wrote:
It's easy to reproduce:
ProtoObject basicNew "print it"
Does anyone know how this can be made debuggable with the debugger (e.g. "debuggerable" :) )?
You could try implementing the necessary methods such as #inspectorClass. Alternatively, if your proxy classes can point to empty/nil objects, then perhaps you can use DNU to check for this and forward to methods such as #xxxInspectorClass?
-- HweeBoon MotionObj http://motionobj.com (65) 6764-9774
IMHO, it would be fine if the debugger simply had enough error handlers that it cleanly survives this situation. ProtoObjects do *not* have all the niceties like debugability, printability, etc. etc.
There should be a big warning in this class, not to touch it unless you really know what you are doing! We could go in circles forever, beefing up ProtoObject and then making a ProtoProtoObject for people who do, in fact, want to live dangerously and play with objects that don't even have basic methods defined on them.
-Lex
On Fri, Jan 28, 2005 at 11:01:26AM -0800, Chris Muller wrote:
While testing proxy classes that inherit from ProtoObject, I frequently get myself into a bad situation where Squeak is trying to open a debugger, but apparently encountering an error while trying to open it. It then tries to open a debugger on *that* but has the same problem.
Of course, the image won't last long at this point as the many thousands of suspended processes ready to be debugged quickly chew up memory.
It's easy to reproduce:
ProtoObject basicNew "print it"
Does anyone know how this can be made debuggable with the debugger (e.g. "debuggerable" :) )?
Well, that's odd. I tried "ProtoObject basicNew" in a 3.6 image and a 3.7 image, and the debuggers opened fine. In a 3.8 and 3.9 image, I get absolutely nothing, no debugger, no printIn output, nothing. This seems strange.
On the other hand, I do have a well-worn 3.7 image that intermittently hangs up with symptoms similar to what you are describing here, see attached png. I have not figured out a way to unbugger this image, and I wonder if it might be related to what you are describing here.
I'm using a Unix VM in case that matters.
Dave
squeak-dev@lists.squeakfoundation.org