And the debug is there.
The halt does not crash the VM in normal condition. (ie Alt-[.] is ok)

Hilaire


Le 28/05/2011 19:07, Hilaire Fernandes a écrit :
> And when there are no halt in commandLineHandlerAction:, the image is
> frozen
> 
> Le 28/05/2011 18:53, Hilaire Fernandes a écrit :
>> With latest pahro core 1.3, I can't load script with command like
>>
>>
>> squeak pharo "`pwd`\myScript.st"
>>
>> When I put a halt at the begining of commandLineHandlerAction:
>> aCommandLine the VM crash
>>
>> VM is 4.0.3-2202
>>
>> Hilaire
>>
>>
> 
> 


-- 
Education 0.2 -- http://blog.ofset.org/hilaire
THERE_BE_DRAGONS_HERE
Halt
28 May 2011 7:24:32 pm

VM: unix - i686 - linux - Squeak3.10.2 of '5 June 2008' [latest update: #7179]
Image: Pharo1.3a [Latest update: #13224]

CodeLoader class(Object)>>halt
	Receiver: CodeLoader
	Arguments and temporary variables: 

	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary(#createRequestFor:in:->(CodeLoader>>#createReque...etc...
		format: 	132
		instanceVariables: 	#('sourceFiles')
		organization: 	('installing' installSourceFile: installSourceFiles)
('loading' l...etc...
		subclasses: 	nil
		name: 	#CodeLoader
		classPool: 	a Dictionary()
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'System-Download'
		traitComposition: 	{}
		localSelectors: 	nil


CodeLoader class>>commandLineHandlerAction:
	Receiver: CodeLoader
	Arguments and temporary variables: 
		aCommandLine: 	a CommandLine
		url: 	nil
		param: 	'/home/hilaire/Travaux/these/inria-istoa/istoa/drgeo2/images/install-drg...etc...
		loader: 	nil
	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary(#createRequestFor:in:->(CodeLoader>>#createReque...etc...
		format: 	132
		instanceVariables: 	#('sourceFiles')
		organization: 	('installing' installSourceFile: installSourceFiles)
('loading' l...etc...
		subclasses: 	nil
		name: 	#CodeLoader
		classPool: 	a Dictionary()
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'System-Download'
		traitComposition: 	{}
		localSelectors: 	nil


[:cl | CodeLoader commandLineHandlerAction: cl] in CodeLoader class>>initialize
	Receiver: CodeLoader
	Arguments and temporary variables: 
		cl: 	a CommandLine
	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary(#createRequestFor:in:->(CodeLoader>>#createReque...etc...
		format: 	132
		instanceVariables: 	#('sourceFiles')
		organization: 	('installing' installSourceFile: installSourceFiles)
('loading' l...etc...
		subclasses: 	nil
		name: 	#CodeLoader
		classPool: 	a Dictionary()
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'System-Download'
		traitComposition: 	{}
		localSelectors: 	nil


[:each | 
| actionBlock conditionBlock |
conditionBlock := each key.
	actionBlock := each value.
	(conditionBlock value: anUserInput)
		ifTrue: [actionBlock value: anUserInput]] in CommandLine class(AbstractUserInput class)>>dispatch:
	Receiver: CommandLine
	Arguments and temporary variables: 
		anUserInput: 	[:cl | CodeLoader commandLineHandlerCondition: cl]->[:cl | CodeLoa...etc...
		each: 	a CommandLine
		actionBlock: 	[:cl | CodeLoader commandLineHandlerAction: cl]
		conditionBlock: 	[:cl | CodeLoader commandLineHandlerCondition: cl]
	Receiver's instance variables: 
		superclass: 	AbstractUserInput
		methodDict: 	a MethodDictionary()
		format: 	136
		instanceVariables: 	nil
		organization: 	('as yet unclassified')

		subclasses: 	nil
		name: 	#CommandLine
		classPool: 	nil
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'System-Support'
		traitComposition: 	{}
		localSelectors: 	nil
		registrations: 	a Dictionary(#CodeLoader->[:cl | CodeLoader commandLineHandlerCo...etc...
		singleton: 	a CommandLine


[:association | aBlock value: association value] in Dictionary>>valuesDo:
	Receiver: a Dictionary(#CodeLoader->[:cl | CodeLoader commandLineHandlerCondition: cl]->[:cl | CodeL...etc...
	Arguments and temporary variables: 
		aBlock: 	#CodeLoader->[:cl | CodeLoader commandLineHandlerCondition: cl]->[:cl |...etc...
		association: 	[:each | 
| actionBlock conditionBlock |
conditionBlock := each ke...etc...
	Receiver's instance variables: 
		tally: 	1
		array: 	an Array(nil nil nil #CodeLoader->[:cl | CodeLoader commandLineHandlerCo...etc...


[:each | each
		ifNotNil: [aBlock value: each]] in Dictionary>>associationsDo:
	Receiver: a Dictionary(#CodeLoader->[:cl | CodeLoader commandLineHandlerCondition: cl]->[:cl | CodeL...etc...
	Arguments and temporary variables: 
		aBlock: 	#CodeLoader->[:cl | CodeLoader commandLineHandlerCondition: cl]->[:cl |...etc...
		each: 	[:association | aBlock value: association value]
	Receiver's instance variables: 
		tally: 	1
		array: 	an Array(nil nil nil #CodeLoader->[:cl | CodeLoader commandLineHandlerCo...etc...


Array(SequenceableCollection)>>do:
	Receiver: an Array(nil nil nil #CodeLoader->[:cl | CodeLoader commandLineHandlerCondition: cl]->[:cl...etc...
	Arguments and temporary variables: 
		aBlock: 	[:each | each
		ifNotNil: [aBlock value: each]]
		index: 	4
		indexLimiT: 	5
	Receiver's instance variables: 
an Array(nil nil nil #CodeLoader->[:cl | CodeLoader commandLineHandlerCondition: cl]->[:cl...etc...

Dictionary>>associationsDo:
	Receiver: a Dictionary(#CodeLoader->[:cl | CodeLoader commandLineHandlerCondition: cl]->[:cl | CodeL...etc...
	Arguments and temporary variables: 
		aBlock: 	[:association | aBlock value: association value]
	Receiver's instance variables: 
		tally: 	1
		array: 	an Array(nil nil nil #CodeLoader->[:cl | CodeLoader commandLineHandlerCo...etc...


Dictionary>>valuesDo:
	Receiver: a Dictionary(#CodeLoader->[:cl | CodeLoader commandLineHandlerCondition: cl]->[:cl | CodeL...etc...
	Arguments and temporary variables: 
		aBlock: 	[:each | 
| actionBlock conditionBlock |
conditionBlock := each key.
	a...etc...
	Receiver's instance variables: 
		tally: 	1
		array: 	an Array(nil nil nil #CodeLoader->[:cl | CodeLoader commandLineHandlerCo...etc...


Dictionary>>do:
	Receiver: a Dictionary(#CodeLoader->[:cl | CodeLoader commandLineHandlerCondition: cl]->[:cl | CodeL...etc...
	Arguments and temporary variables: 
		aBlock: 	[:each | 
| actionBlock conditionBlock |
conditionBlock := each key.
	a...etc...
	Receiver's instance variables: 
		tally: 	1
		array: 	an Array(nil nil nil #CodeLoader->[:cl | CodeLoader commandLineHandlerCo...etc...


CommandLine class(AbstractUserInput class)>>dispatch:
	Receiver: CommandLine
	Arguments and temporary variables: 
		anUserInput: 	a CommandLine
	Receiver's instance variables: 
		superclass: 	AbstractUserInput
		methodDict: 	a MethodDictionary()
		format: 	136
		instanceVariables: 	nil
		organization: 	('as yet unclassified')

		subclasses: 	nil
		name: 	#CommandLine
		classPool: 	nil
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'System-Support'
		traitComposition: 	{}
		localSelectors: 	nil
		registrations: 	a Dictionary(#CodeLoader->[:cl | CodeLoader commandLineHandlerCo...etc...
		singleton: 	a CommandLine


CommandLine class>>dispatch
	Receiver: CommandLine
	Arguments and temporary variables: 

	Receiver's instance variables: 
		superclass: 	AbstractUserInput
		methodDict: 	a MethodDictionary()
		format: 	136
		instanceVariables: 	nil
		organization: 	('as yet unclassified')

		subclasses: 	nil
		name: 	#CommandLine
		classPool: 	nil
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'System-Support'
		traitComposition: 	{}
		localSelectors: 	nil
		registrations: 	a Dictionary(#CodeLoader->[:cl | CodeLoader commandLineHandlerCo...etc...
		singleton: 	a CommandLine


CommandLine class>>startUp:
	Receiver: CommandLine
	Arguments and temporary variables: 
		resuming: 	true
	Receiver's instance variables: 
		superclass: 	AbstractUserInput
		methodDict: 	a MethodDictionary()
		format: 	136
		instanceVariables: 	nil
		organization: 	('as yet unclassified')

		subclasses: 	nil
		name: 	#CommandLine
		classPool: 	nil
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'System-Support'
		traitComposition: 	{}
		localSelectors: 	nil
		registrations: 	a Dictionary(#CodeLoader->[:cl | CodeLoader commandLineHandlerCo...etc...
		singleton: 	a CommandLine


[:name | 
| class |
class := self
				at: name
				ifAbsent: [].
	class isNil
		ifTrue: [removals add: name]
		ifFalse: [class perform: startUpOrShutDown with: argument]] in SmalltalkImage>>send:toClassesNamedIn:with:
	Receiver: Smalltalk
	Arguments and temporary variables: 
		startUpOrShutDown: 	#CommandLine
		argument: 	#startUp:
		removals: 	true
		name: 	an OrderedCollection()
		class: 	CommandLine
	Receiver's instance variables: 
		globals: 	a SystemDictionary(lots of globals)


OrderedCollection>>do:
	Receiver: an OrderedCollection(#Delay #OSPlatform #DisplayScreen #Cursor #InputEventFetcher #Process...etc...
	Arguments and temporary variables: 
		aBlock: 	[:name | 
| class |
class := self
				at: name
				ifAbsent: [].
	class...etc...
		index: 	71
	Receiver's instance variables: 
		array: 	#(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ni...etc...
		firstIndex: 	38
		lastIndex: 	73


SmalltalkImage>>send:toClassesNamedIn:with:
	Receiver: Smalltalk
	Arguments and temporary variables: 
		startUpOrShutDown: 	#startUp:
		startUpOrShutDownList: 	an OrderedCollection(#Delay #OSPlatform #DisplayScreen #...etc...
		argument: 	true
		removals: 	an OrderedCollection()
	Receiver's instance variables: 
		globals: 	a SystemDictionary(lots of globals)


SmalltalkImage>>processStartUpList:
	Receiver: Smalltalk
	Arguments and temporary variables: 
		resuming: 	true
	Receiver's instance variables: 
		globals: 	a SystemDictionary(lots of globals)


[self processStartUpList: resuming.
	resuming
		ifTrue: [self recordStartupStamp]] in SmalltalkImage>>snapshot:andQuit:
	Receiver: Smalltalk
	Arguments and temporary variables: 
		resuming: 	true
	Receiver's instance variables: 
		globals: 	a SystemDictionary(lots of globals)


BlockClosure>>ensure:
	Receiver: [self processStartUpList: resuming.
	resuming
		ifTrue: [self recordStartupStamp]]
	Arguments and temporary variables: 
		aBlock: 	[Default := self]
		complete: 	nil
		returnValue: 	nil
	Receiver's instance variables: 
		outerContext: 	SmalltalkImage>>snapshot:andQuit:
		startpc: 	215
		numArgs: 	0


MorphicUIManager(UIManager)>>boot:during:
	Receiver: a MorphicUIManager
	Arguments and temporary variables: 
		bootingFromDisk: 	true
		aBlock: 	[self processStartUpList: resuming.
	resuming
		ifTrue: [self recordSta...etc...
	Receiver's instance variables: 
		interactiveParser: 	nil


SmalltalkImage>>snapshot:andQuit:
	Receiver: Smalltalk
	Arguments and temporary variables: 
		save: 	true
		quit: 	true
		snapshotResult: 	true
		resuming: 	true
	Receiver's instance variables: 
		globals: 	a SystemDictionary(lots of globals)


WorldState class>>saveAndQuit
	Receiver: WorldState
	Arguments and temporary variables: 

	Receiver's instance variables: 
		superclass: 	Object
		methodDict: 	a MethodDictionary(#activeHand->(WorldState>>#activeHand "a Compile...etc...
		format: 	152
		instanceVariables: 	#('hands' 'viewBox' 'canvas' 'damageRecorder' 'stepList' 'la...etc...
		organization: 	('alarms' addAlarm:withArguments:for:at: adjustAlarmTimes: alarmS...etc...
		subclasses: 	nil
		name: 	#WorldState
		classPool: 	a Dictionary(#CanSurrenderToOS->true #DebugShowDamage->false #Deferr...etc...
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'Morphic-Worlds'
		traitComposition: 	{}
		localSelectors: 	nil


[| selArgCount | (selArgCount := selector numArgs) = 0
		ifTrue: [target perform: selector]
		ifFalse: [selArgCount = arguments size
				ifTrue: [target perform: selector withArguments: arguments]
				ifFalse: [target
						perform: selector
						withArguments: (arguments copyWith: evt)]]] in MenuItemMorph>>invokeWithEvent:
	Receiver: a MenuItemMorph(362807296)'Save and quit'
	Arguments and temporary variables: 
		evt: 	[193@615 mouseUp 9293 nil]
		selArgCount: 	0
	Receiver's instance variables: 
		bounds: 	154@602 corner: 299@620
		owner: 	a MenuMorph(140771328)
		submorphs: 	#()
		fullBounds: 	154@602 corner: 299@620
		color: 	Color black
		extension: 	a MorphExtension (1056702464)
		font: 	a StrikeFont(Bitmap DejaVu Sans 9 14)
		emphasis: 	0
		contents: 	'Save and quit'
		hasFocus: 	false
		isEnabled: 	true
		subMenu: 	nil
		isSelected: 	false
		target: 	WorldState
		selector: 	#saveAndQuit
		arguments: 	#()
		icon: 	Form(16x16x32)


BlockClosure>>ensure:
	Receiver: [| selArgCount | (selArgCount := selector numArgs) = 0
		ifTrue: [target perform: selector...etc...
	Arguments and temporary variables: 
		aBlock: 	[oldcursor show]
		complete: 	nil
		returnValue: 	nil
	Receiver's instance variables: 
		outerContext: 	MenuItemMorph>>invokeWithEvent:
		startpc: 	152
		numArgs: 	0


CursorWithMask(Cursor)>>showWhile:
	Receiver: ((CursorWithMask
	extent: 16@16
	depth: 1
	fromArray: #(
		2r0
		2r10000000000000000000000...etc...
	Arguments and temporary variables: 
		aBlock: 	[| selArgCount | (selArgCount := selector numArgs) = 0
		ifTrue: [targe...etc...
		oldcursor: 	((CursorWithMask
	extent: 16@16
	depth: 1
	fromArray: #(
		2r0
		2r1...etc...
	Receiver's instance variables: 
		bits: 	a Bitmap of length 16
		width: 	16
		height: 	16
		depth: 	1
		offset: 	-1@ -1
		maskForm: 	Form(16x16x1)


MenuItemMorph>>invokeWithEvent:
	Receiver: a MenuItemMorph(362807296)'Save and quit'
	Arguments and temporary variables: 
		evt: 	[193@615 mouseUp 9293 nil]
		w: 	a PasteUpMorph(425197568) [world]
	Receiver's instance variables: 
		bounds: 	154@602 corner: 299@620
		owner: 	a MenuMorph(140771328)
		submorphs: 	#()
		fullBounds: 	154@602 corner: 299@620
		color: 	Color black
		extension: 	a MorphExtension (1056702464)
		font: 	a StrikeFont(Bitmap DejaVu Sans 9 14)
		emphasis: 	0
		contents: 	'Save and quit'
		hasFocus: 	false
		isEnabled: 	true
		subMenu: 	nil
		isSelected: 	false
		target: 	WorldState
		selector: 	#saveAndQuit
		arguments: 	#()
		icon: 	Form(16x16x32)


MenuItemMorph>>mouseUp:
	Receiver: a MenuItemMorph(362807296)'Save and quit'
	Arguments and temporary variables: 
		evt: 	[193@615 mouseUp 9293 nil]
	Receiver's instance variables: 
		bounds: 	154@602 corner: 299@620
		owner: 	a MenuMorph(140771328)
		submorphs: 	#()
		fullBounds: 	154@602 corner: 299@620
		color: 	Color black
		extension: 	a MorphExtension (1056702464)
		font: 	a StrikeFont(Bitmap DejaVu Sans 9 14)
		emphasis: 	0
		contents: 	'Save and quit'
		hasFocus: 	false
		isEnabled: 	true
		subMenu: 	nil
		isSelected: 	false
		target: 	WorldState
		selector: 	#saveAndQuit
		arguments: 	#()
		icon: 	Form(16x16x32)


MenuItemMorph>>handleMouseUp:
	Receiver: a MenuItemMorph(362807296)'Save and quit'
	Arguments and temporary variables: 
		anEvent: 	[193@615 mouseUp 9293 nil]
	Receiver's instance variables: 
		bounds: 	154@602 corner: 299@620
		owner: 	a MenuMorph(140771328)
		submorphs: 	#()
		fullBounds: 	154@602 corner: 299@620
		color: 	Color black
		extension: 	a MorphExtension (1056702464)
		font: 	a StrikeFont(Bitmap DejaVu Sans 9 14)
		emphasis: 	0
		contents: 	'Save and quit'
		hasFocus: 	false
		isEnabled: 	true
		subMenu: 	nil
		isSelected: 	false
		target: 	WorldState
		selector: 	#saveAndQuit
		arguments: 	#()
		icon: 	Form(16x16x32)


MouseButtonEvent>>sentTo:
	Receiver: [193@615 mouseUp 9293 nil]
	Arguments and temporary variables: 
		anObject: 	a MenuItemMorph(362807296)'Save and quit'
	Receiver's instance variables: 
		timeStamp: 	9293
		source: 	a HandMorph(843055104)
		windowIndex: 	nil
		type: 	#mouseUp
		buttons: 	0
		position: 	193@615
		handler: 	nil
		wasHandled: 	true
		whichButton: 	4


MenuItemMorph(Morph)>>handleEvent:
	Receiver: a MenuItemMorph(362807296)'Save and quit'
	Arguments and temporary variables: 
		anEvent: 	[193@615 mouseUp 9293 nil]
	Receiver's instance variables: 
		bounds: 	154@602 corner: 299@620
		owner: 	a MenuMorph(140771328)
		submorphs: 	#()
		fullBounds: 	154@602 corner: 299@620
		color: 	Color black
		extension: 	a MorphExtension (1056702464)
		font: 	a StrikeFont(Bitmap DejaVu Sans 9 14)
		emphasis: 	0
		contents: 	'Save and quit'
		hasFocus: 	false
		isEnabled: 	true
		subMenu: 	nil
		isSelected: 	false
		target: 	WorldState
		selector: 	#saveAndQuit
		arguments: 	#()
		icon: 	Form(16x16x32)


MorphicEventDispatcher>>dispatchDefault:with:
	Receiver: a MorphicEventDispatcher
	Arguments and temporary variables: 
		anEvent: 	[193@615 mouseUp 9293 nil]
		aMorph: 	a MenuItemMorph(362807296)'Save and quit'
		localEvt: 	nil
		index: 	1
		child: 	nil
		morphs: 	#()
		inside: 	true
	Receiver's instance variables: 
		lastType: 	#mouseUp
		lastDispatch: 	#dispatchDefault:with:


MorphicEventDispatcher>>dispatchEvent:with:
	Receiver: a MorphicEventDispatcher
	Arguments and temporary variables: 
		anEvent: 	[193@615 mouseUp 9293 nil]
		aMorph: 	a MenuItemMorph(362807296)'Save and quit'
	Receiver's instance variables: 
		lastType: 	#mouseUp
		lastDispatch: 	#dispatchDefault:with:


MenuItemMorph(Morph)>>processEvent:using:
	Receiver: a MenuItemMorph(362807296)'Save and quit'
	Arguments and temporary variables: 
		anEvent: 	[193@615 mouseUp 9293 nil]
		defaultDispatcher: 	a MorphicEventDispatcher
	Receiver's instance variables: 
		bounds: 	154@602 corner: 299@620
		owner: 	a MenuMorph(140771328)
		submorphs: 	#()
		fullBounds: 	154@602 corner: 299@620
		color: 	Color black
		extension: 	a MorphExtension (1056702464)
		font: 	a StrikeFont(Bitmap DejaVu Sans 9 14)
		emphasis: 	0
		contents: 	'Save and quit'
		hasFocus: 	false
		isEnabled: 	true
		subMenu: 	nil
		isSelected: 	false
		target: 	WorldState
		selector: 	#saveAndQuit
		arguments: 	#()
		icon: 	Form(16x16x32)


MorphicEventDispatcher>>dispatchDefault:with:
	Receiver: a MorphicEventDispatcher
	Arguments and temporary variables: 
		anEvent: 	[193@615 mouseUp 9293 nil]
		aMorph: 	a MenuMorph(140771328)
		localEvt: 	[193@615 mouseUp 9293 nil]
		index: 	15
		child: 	a MenuItemMorph(362807296)'Save and quit'
		morphs: 	an Array(an AlignmentMorph(260046848) a MenuItemMorph(733216768)'System...etc...
		inside: 	false
	Receiver's instance variables: 
		lastType: 	#mouseUp
		lastDispatch: 	#dispatchDefault:with:


MorphicEventDispatcher>>dispatchEvent:with:
	Receiver: a MorphicEventDispatcher
	Arguments and temporary variables: 
		anEvent: 	[193@615 mouseUp 9293 nil]
		aMorph: 	a MenuMorph(140771328)
	Receiver's instance variables: 
		lastType: 	#mouseUp
		lastDispatch: 	#dispatchDefault:with:


MenuMorph(Morph)>>processEvent:using:
	Receiver: a MenuMorph(140771328)
	Arguments and temporary variables: 
		anEvent: 	[193@615 mouseUp 9293 nil]
		defaultDispatcher: 	a MorphicEventDispatcher
	Receiver's instance variables: 
		bounds: 	149@374 corner: 304@644
		owner: 	nil
		submorphs: 	an Array(an AlignmentMorph(260046848) a MenuItemMorph(733216768)'Sys...etc...
		fullBounds: 	149@374 corner: 304@644
		color: 	(Color r: 0.848 g: 0.848 b: 0.848)
		extension: 	a MorphExtension (1026293760) [other:  (basicColor -> (Color r: 0.74...etc...
		borderWidth: 	2
		borderColor: 	(Color r: 0.595 g: 0.595 b: 0.595)
		defaultTarget: 	nil
		selectedItem: 	a MenuItemMorph(362807296)'Save and quit'
		stayUp: 	false
		popUpOwner: 	nil
		activeSubMenu: 	nil
		activatorDockingBar: 	nil
		embeddable: 	nil
		menuItems: 	nil


MenuMorph(Morph)>>processEvent:
	Receiver: a MenuMorph(140771328)
	Arguments and temporary variables: 
		anEvent: 	[193@615 mouseUp 9293 nil]
	Receiver's instance variables: 
		bounds: 	149@374 corner: 304@644
		owner: 	nil
		submorphs: 	an Array(an AlignmentMorph(260046848) a MenuItemMorph(733216768)'Sys...etc...
		fullBounds: 	149@374 corner: 304@644
		color: 	(Color r: 0.848 g: 0.848 b: 0.848)
		extension: 	a MorphExtension (1026293760) [other:  (basicColor -> (Color r: 0.74...etc...
		borderWidth: 	2
		borderColor: 	(Color r: 0.595 g: 0.595 b: 0.595)
		defaultTarget: 	nil
		selectedItem: 	a MenuItemMorph(362807296)'Save and quit'
		stayUp: 	false
		popUpOwner: 	nil
		activeSubMenu: 	nil
		activatorDockingBar: 	nil
		embeddable: 	nil
		menuItems: 	nil


MenuMorph>>handleFocusEvent:
	Receiver: a MenuMorph(140771328)
	Arguments and temporary variables: 
		evt: 	[193@615 mouseUp 9293 nil]
	Receiver's instance variables: 
		bounds: 	149@374 corner: 304@644
		owner: 	nil
		submorphs: 	an Array(an AlignmentMorph(260046848) a MenuItemMorph(733216768)'Sys...etc...
		fullBounds: 	149@374 corner: 304@644
		color: 	(Color r: 0.848 g: 0.848 b: 0.848)
		extension: 	a MorphExtension (1026293760) [other:  (basicColor -> (Color r: 0.74...etc...
		borderWidth: 	2
		borderColor: 	(Color r: 0.595 g: 0.595 b: 0.595)
		defaultTarget: 	nil
		selectedItem: 	a MenuItemMorph(362807296)'Save and quit'
		stayUp: 	false
		popUpOwner: 	nil
		activeSubMenu: 	nil
		activatorDockingBar: 	nil
		embeddable: 	nil
		menuItems: 	nil


[ActiveHand := self.
	ActiveEvent := anEvent.
	result := focusHolder
				handleFocusEvent: (anEvent
						transformedBy: (focusHolder transformedFrom: self))] in HandMorph>>sendFocusEvent:to:clear:
	Receiver: a HandMorph(843055104)
	Arguments and temporary variables: 
		anEvent: 	[193@615 mouseUp 9293 nil]
		focusHolder: 	a MenuMorph(140771328)
		result: 	#(nil)
	Receiver's instance variables: 
		bounds: 	100@100 corner: 116@116
		owner: 	a PasteUpMorph(425197568) [world]
		submorphs: 	#()
		fullBounds: 	100@100 corner: 116@116
		color: 	Color blue
		extension: 	a MorphExtension (141295616) [eventHandler = an EventHandler] 
		mouseFocus: 	nil
		keyboardFocus: 	nil
		eventListeners: 	nil
		mouseListeners: 	nil
		keyboardListeners: 	nil
		mouseClickState: 	nil
		mouseOverHandler: 	nil
		lastMouseEvent: 	[0@0 mouseMove nil nil]
		targetOffset: 	151@451
		damageRecorder: 	a DamageRecorder
		cacheCanvas: 	nil
		cachedCanvasHasHoles: 	true
		temporaryCursor: 	nil
		temporaryCursorOffset: 	nil
		hardwareCursor: 	nil
		hasChanged: 	true
		savedPatch: 	nil
		userInitials: 	''
		lastEventBuffer: 	#(1 0 0 0 0 0 nil nil)
		lastKeyScanCode: 	115
		combinedChar: 	nil



--- The full stack ---
CodeLoader class(Object)>>halt
CodeLoader class>>commandLineHandlerAction:
[:cl | CodeLoader commandLineHandlerAction: cl] in CodeLoader class>>initialize
[:each | 
| actionBlock conditionBlock |
conditionBlock := each key.
	actionBlock := each value.
	(conditionBlock value: anUserInput)
		ifTrue: [actionBlock value: anUserInput]] in CommandLine class(AbstractUserInput class)>>dispatch:
[:association | aBlock value: association value] in Dictionary>>valuesDo:
[:each | each
		ifNotNil: [aBlock value: each]] in Dictionary>>associationsDo:
Array(SequenceableCollection)>>do:
Dictionary>>associationsDo:
Dictionary>>valuesDo:
Dictionary>>do:
CommandLine class(AbstractUserInput class)>>dispatch:
CommandLine class>>dispatch
CommandLine class>>startUp:
[:name | 
| class |
class := self
				at: name
				ifAbsent: [].
	class isNil
		ifTrue: [removals add: name]
		ifFalse: [class perform: startUpOrShutDown with: argument]] in SmalltalkImage>>send:toClassesNamedIn:with:
OrderedCollection>>do:
SmalltalkImage>>send:toClassesNamedIn:with:
SmalltalkImage>>processStartUpList:
[self processStartUpList: resuming.
	resuming
		ifTrue: [self recordStartupStamp]] in SmalltalkImage>>snapshot:andQuit:
BlockClosure>>ensure:
MorphicUIManager(UIManager)>>boot:during:
SmalltalkImage>>snapshot:andQuit:
WorldState class>>saveAndQuit
[| selArgCount | (selArgCount := selector numArgs) = 0
		ifTrue: [target perform: selector]
		ifFalse: [selArgCount = arguments size
				ifTrue: [target perform: selector withArguments: arguments]
				ifFalse: [target
						perform: selector
						withArguments: (arguments copyWith: evt)]]] in MenuItemMorph>>invokeWithEvent:
BlockClosure>>ensure:
CursorWithMask(Cursor)>>showWhile:
MenuItemMorph>>invokeWithEvent:
MenuItemMorph>>mouseUp:
MenuItemMorph>>handleMouseUp:
MouseButtonEvent>>sentTo:
MenuItemMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuItemMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuMorph(Morph)>>processEvent:using:
MenuMorph(Morph)>>processEvent:
MenuMorph>>handleFocusEvent:
[ActiveHand := self.
	ActiveEvent := anEvent.
	result := focusHolder
				handleFocusEvent: (anEvent
						transformedBy: (focusHolder transformedFrom: self))] in HandMorph>>sendFocusEvent:to:clear:
 - - - - - - - - - - - - - - -  
			- - - - - - - - - - - - - - - - - -
[aBlock value] in PasteUpMorph>>becomeActiveDuring:
BlockClosure>>on:do:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[:h | 
ActiveHand := h.
	h processEvents.
	ActiveHand := nil] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[[World doOneCycle.
	Processor yield.
	false] whileFalse.
	nil] in Project class>>spawnNewProcess
[self value.
	Processor terminateActive] in BlockClosure>>newProcess
------------------------------------------------------------

Processes and their stacks: 
Process: a Process in nil
  stack:

Array(SequenceableCollection)>>do:
[:logger | 
logger nextPutAll: 'Processes and their stacks: ';
		 cr.
	Process allInstances
		do: [:each | 
			| ctx |
			logger nextPutAll: 'Process: ';
				 print: each;
				 cr;
				 nextPutAll: '  stack:';
				 cr;
				 cr.
			ctx := each isActiveProcess
						ifTrue: [thisContext sender]
						ifFalse: [each suspendedContext].
			ctx
				ifNotNil: [(ctx stackOfSize: 20)
						do: [:s | logger print: s;
								 cr]].
			logger nextPutAll: '------------------------------';
				 cr;
				 cr]] in [Smalltalk logError: aString inContext: aContext.
	Smalltalk
		logDuring: [:logger | 
			logger nextPutAll: 'Processes and their stacks: ';
				 cr.
			Process allInstances
				do: [:each | 
					| ctx |
					logger nextPutAll: 'Process: ';
						 print: each;
						 cr;
						 nextPutAll: '  stack:';
						 cr;
						 cr.
					ctx := each isActiveProcess
								ifTrue: [thisContext sender]
								ifFalse: [each suspendedContext].
					ctx
						ifNotNil: [(ctx stackOfSize: 20)
								do: [:s | logger print: s;
										 cr]].
					logger nextPutAll: '------------------------------';
						 cr;
						 cr]]] in StartupUIManager(NonInteractiveUIManager)>>quitFrom:withMessage:
[logStream := self openLog.
	aMonadicBlock value: logStream] in SmalltalkImage>>logDuring:
BlockClosure>>ensure:
SmalltalkImage>>logDuring:
[Smalltalk logError: aString inContext: aContext.
	Smalltalk
		logDuring: [:logger | 
			logger nextPutAll: 'Processes and their stacks: ';
				 cr.
			Process allInstances
				do: [:each | 
					| ctx |
					logger nextPutAll: 'Process: ';
						 print: each;
						 cr;
						 nextPutAll: '  stack:';
						 cr;
						 cr.
					ctx := each isActiveProcess
								ifTrue: [thisContext sender]
								ifFalse: [each suspendedContext].
					ctx
						ifNotNil: [(ctx stackOfSize: 20)
								do: [:s | logger print: s;
										 cr]].
					logger nextPutAll: '------------------------------';
						 cr;
						 cr]]] in StartupUIManager(NonInteractiveUIManager)>>quitFrom:withMessage:
BlockClosure>>ensure:
StartupUIManager(NonInteractiveUIManager)>>quitFrom:withMessage:
StartupUIManager(NonInteractiveUIManager)>>unhandledErrorDefaultAction:
UnhandledError>>defaultAction
UndefinedObject>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
UnhandledError(Exception)>>signal
UnhandledError class>>signalForException:
Halt>>defaultAction
UndefinedObject>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
Halt(Exception)>>signal
Halt class(Exception class)>>signal
CodeLoader class(Object)>>halt
------------------------------

Process: a Process in Delay class>>handleTimerEvent
  stack:

Delay class>>handleTimerEvent
Delay class>>runTimerEventLoop
[self runTimerEventLoop] in Delay class>>startTimerEventLoop
[self value.
	Processor terminateActive] in BlockClosure>>newProcess
------------------------------

Process: a Process in [self value.
	Processor terminateActive] in BlockClosure>>newProcess
  stack:

[self value.
	Processor terminateActive] in BlockClosure>>newProcess
------------------------------

Process: a Process in [self value.
	Processor terminateActive] in BlockClosure>>newProcess
  stack:

[self value.
	Processor terminateActive] in BlockClosure>>newProcess
------------------------------

Process: a Process in [self value.
	Processor terminateActive] in BlockClosure>>newProcess
  stack:

[self value.
	Processor terminateActive] in BlockClosure>>newProcess
------------------------------

Process: a Process in [self value.
	Processor terminateActive] in BlockClosure>>newProcess
  stack:

[self value.
	Processor terminateActive] in BlockClosure>>newProcess
------------------------------

Process: a Process in SmalltalkImage>>lowSpaceWatcher
  stack:

SmalltalkImage>>lowSpaceWatcher
[self lowSpaceWatcher] in SmalltalkImage>>installLowSpaceWatcher
[self value.
	Processor terminateActive] in BlockClosure>>newProcess
------------------------------

Process: a Process in [self value.
	Processor terminateActive] in BlockClosure>>newProcess
  stack:

[self value.
	Processor terminateActive] in BlockClosure>>newProcess
------------------------------

Process: a Process in [delaySemaphore wait] in Delay>>wait
  stack:

[delaySemaphore wait] in Delay>>wait
BlockClosure>>ifCurtailed:
Delay>>wait
InputEventPollingFetcher>>waitForInput
InputEventPollingFetcher(InputEventFetcher)>>eventLoop
[self eventLoop] in InputEventPollingFetcher(InputEventFetcher)>>installEventLoop
[self value.
	Processor terminateActive] in BlockClosure>>newProcess
------------------------------

Process: a Process in WeakArray class>>finalizationProcess
  stack:

WeakArray class>>finalizationProcess
[self finalizationProcess] in WeakArray class>>restartFinalizationProcess
[self value.
	Processor terminateActive] in BlockClosure>>newProcess
------------------------------

Reply via email to