[ENH] Enhanced Debugging Experience (first shot)

Andres Valloud sqrmax at prodigy.net
Thu Jul 19 21:12:39 UTC 2001


Hello.

> 3. Fast step method executes the message using perform:, not by
> simulation. Mucho mucho quicker!

Ah, but this will break one of my favorite surgical tools! For instance,
suppose you have a broken image in which an object's class has become,
say, String new. Such object can't perform anything because the VM will
barf when it doesn't find aMethodDictionary in the object's header.

How can you find such objects when the moment you send them any message
the VM crashes? By scanning the image in the interpreting debugger ---
you can send messages by interpreting them since a failure in the
smalltalk interpreter will be an exception, not a complete failure of
the virtual machine.  Eventually, the interpretation will fail at a
certain object. By looking at an inspector, now you know which one is it
at least by name.

Q: How do you fix the image if you can't send any message to the broken
object?

A: #become: is two-way --- instead of brokenObject become: String new,
you do String new become: brokenObject.

Andres.




More information about the Squeak-dev mailing list