Mantis - Squeak
Viewing Issue Advanced Details
1758 Kernel crash always 08-30-05 21:18 11-07-10 06:16
confirmed 3.9  
0001758: Instance creation of ObjectTracer hangs Squeak
When I try to inspect the example provided in ObjectTracer class

(ObjectTracer on: Display) flash: (50@50 extent: 50@50)

Squeak just hangs. When I try to debug it hangs when "ObjectTracer new"
is sent during execution of #on:. Since ObjectTracer is a subclass of
nil we may have the problem here.


09-07-05 23:26   
ObjectTracer seems to be badly broken. Using it can make Squeak hang or even crash. Someone who knows how nil, ProtoObject and ObjectTracer are supposed to interact should look into this.
11-07-10 06:16   
ObjectTracer is probably very old (pre-1999). The basic problem is that ObjectTracer class >> #on: sends #new which tries to send #initialize to the new instance which won't succeed. It should use #basicNew.
After this change things are a bit better, but opening a debugger won't work in #doesNotUnderstand:, because it will send #inspectorClass, which is also not understood. But that can also be worked around, by replacing the debugger invocation with UIManager default inform: 'About to perform: ', aMessage selector.
The last issue (and solving this probably requires VM changes) is that primitive 100 (#perform:withArguments:inSuperclass: sent by Message >> #sentTo:) doesn't perform the requested method if the receiver is not a subinstance of the given superclass. Since the traced object is not a subinstance of ObjectTracer, the primitive will fail, a debugger will open and we're back to the #inspectorClass problem.