Crashing Squeak

William O. Dargel wDargel at shoshana.com
Tue Sep 22 23:54:53 UTC 1998


Andreas Raab wrote:

> The image you've provided looks as if it's pretty okay. All accessible
> objects are okay in the initial environment.

I'd be interested in hearing (briefly anyway) how you determine that "all
accessible objects are okay".

> However, after jumping back
> to the MVC parent project there is some MethodContext broken. FWIW, the
> context that is then broken identifies itself as "SystemDictionary>>snapshot:andQuit:"
> but that does not immediately break the image.

You caught my attention with that. I did change snapshot:andQuit: a bit in my image. I've
attached my version. It changes what "Smalltalk logChange: ..." writes at the beginning to
include explicit Quits in addition to Snapshot and Snapshot&Quit. Also, and this could be
a part of the puzzle, after the image resumes, I'm doing a "Smalltalk logChange: ..." to
stamp the Startup in the changes file. (So it may be my doing after all)  :-(

-Bill

-------------------------------------------
Bill Dargel            wdargel at shoshana.com
Shoshana Technologies
100 West Joy Road, Ann Arbor, MI 48105  USA
'From Squeak 2.2beta of Sept 16, 1998 on 22 September 1998 at 7:27:21 pm'!

!SystemDictionary methodsFor: 'snapshot and quit' stamp: 'wod 5/24/1998 19:07'!
snapshot: save andQuit: quit
	"Mark the changes file and close all files. If save is true, save the current state of this Smalltalk in the image file. If quit is true, then exit to the outer shell. The latter part of this method runs when resuming a previously saved image. The resume logic checks for a document file to process when starting up."
	"wod 5/24/1998: Add a QUIT message on simple quit. Change old quit message to SNAPSHOT & QUIT. Add a STARTING message when resuming the image."

	| resuming msg sourceLink |
	(SourceFiles at: 2) notNil ifTrue:
		[msg _  (quit
			ifTrue: [save ifTrue: ['----SNAPSHOT & QUIT----'] ifFalse: ['----QUIT----']]
			ifFalse: ['----SNAPSHOT----'])
			, Date dateAndTimeNow printString.
		sourceLink _ ' priorSource: ' , LastQuitLogPosition printString.

		LastQuitLogPosition _ (SourceFiles at: 2) setToEnd; position.
		self logChange: msg , sourceLink.
		Transcript cr; show: msg].

	self processShutDownList.
	Smalltalk isMorphic ifFalse: [Cursor write show].
	save
		ifTrue: [resuming _ self snapshotPrimitive]  "<-- PC frozen here on image file"
		ifFalse: [resuming _ false].
	quit & resuming not ifTrue: [self quitPrimitive].
	Smalltalk isMorphic ifFalse: [Cursor normal show].
	self processStartUpList.
	resuming ifTrue: [
		Smalltalk logChange: '----STARTUP----', Date dateAndTimeNow printString.
		self clearExternalObjects.
		self readDocumentFile].
! !





More information about the Squeak-dev mailing list