Squeak Crash, cannot restart, "crash screen dump" attached...
David T. Lewis
lewis at mail.msen.com
Sat Jul 17 13:32:44 UTC 2004
On Thu, Jul 15, 2004 at 06:43:20PM -0400, Milan Zimmermann wrote:
> I was wondering if there is anything I can do .. I was playing with creating a
> Presentation using InternalThreadNavigationMorph, but not saying it has
> anything to do with it ... I was in the middle of navigating the Thread an
> tried to use "Prev" on the Flap, trying to get back to the parent project. At
> some point I received a "message not understood", not sure what I selected.
> Yet a bit later I tried to get back to the "top level" project .. probably
> got another message there .. something about balloon help.
> Then Squeak "crashed" .. well not completely, I got a "white screen" similar
> to one attached.
> Restarting Squeak does not help, on restart I am getting a message attached
> here as a PNG .
> Anything I can do to salvage stuff inside the image?
Well, maybe. It's worth a try.
Step 1, before you do anything else: Save a copy of your bad image/changes files.
Any attempt to fix this image is likely going to trash it up even worse, so
you need to be able to go back to your original trashed image easily.
I typically do something like this:
tar czvf myHosedImage.tgz myHosedImage.image myHosedImage.changes
The png file you sent shows that the system got hung up trying to redisplay
the world, which was of course happening when you changed projects with the
thread navigator. In about the middle of your screen dump, you can see that
a FlashCharacterMorph was trying to display itself with the #fullDrawOn: method.
To do this, it ran FlashMorph>>fullDrawOn: aCanvas.
If you can look at this method in a browser (in another Squeak image, of course ;)
you can see that your FlashCharacterMorph is trying to display itself on a
canvas, and the canvas is a ClippingCanvas, which apparently does not know
how to handle the message #asBalloonCanvas.
I have no idea what this really means, except that it more or less looks as
though we have gotten confused as to what sort of canvas we are supposed to
be displaying ourselves on, possibly as a result of some kind of bug in the
thread navigation. Maybe someone more knowledgeable than me can step in and
offer some advice as to what might be going wrong.
Anyway, regardless of the root cause, your immediate problem is to try to
recover your image. I'd give it about a 20% chance of success, but it's
probably worth a try. It is possible that if we can convince FlashCharacterMorph
to not try to display itself, then we can temporarily bypass the method
that is blowing up (of course, something else may blow up immediately
afterward, hence the low probability of success). Sometimes this sort of
hack can be done with a startup script that gets evaluated when Squeak starts
When I get some time later today I'll try to come up with an example that
might help. Meantime I'll post this in the hope that it might prompt some
more useful replies from other folks on the list.
More information about the Squeak-dev