This sequence of commands was working yesterday and is broken today:
./pharo Pharo.image save xxx; ./pharo xxx.image --quit --save ./boom.st
The contents of boom.st is the following:
Metacello new
baseline: 'Metacello';
repository:
'github://dalehenrich/metacello-work:master/repository';
onConflict: [:ex | ex allow];
load: #( 'batch' ).
I've attached to PharoDebug.log ... The Pharo.image is freshly
downloaded along with the vm. Needless to say, the expression above
works when run with a GUI. Oddly enough the receiver of #finish looks to
be a temp named 'canvas' in the middle of the
WorkState>>displayWorld:submorphs: method ... two lines earlier the'
canvas' temp had to have a valid value, so this has the look of a zombie
process of some sort that is being brought to life at the wrong moment ...
stdout for the run follows.
Dale
foos:voyage>./pharo Pharo.image save xxx; ./pharo xxx.image --quit
--save ./boom.st
Error: MessageNotUnderstood: receiver of "finish" is nil
UndefinedObject(Object)>>error:
[ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing
problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely: in Block: [ :err
:rcvr | ...
BlockClosure>>cull:cull:
[ :ex | errorHandlerBlock cull: ex description cull: ex receiver ] in
BlockClosure>>ifError: in Block: [ :ex | errorHandlerBlock cull: ex
description cul...etc...
BlockClosure>>cull:
Context>>evaluateSignal:
Context>>handleSignal:
MessageNotUnderstood(Exception)>>signal
UndefinedObject(Object)>>doesNotUnderstand: #finish
WorldState>>displayWorld:submorphs:
WorldMorph>>displayWorld
[ aWorld displayWorld ] in WorldState>>displayWorldSafely: in Block: [
aWorld displayWorld ]
BlockClosure>>on:do:
BlockClosure>>ifError:
WorldState>>displayWorldSafely:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycle
[ [ World doOneCycle.
Processor yield.
false ] whileFalse: [ ] ] in MorphicUIManager>>spawnNewProcess in
Block: [ [ World doOneCycle....
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess in Block: [ self
value....
Metacello new
baseline: 'Metacello';
repository: 'github://dalehenrich/metacello-work:master/repository';
onConflict: [:ex | ex allow];
load: #( 'batch' ).
THERE_BE_DRAGONS_HERE
Error: MessageNotUnderstood: receiver of "finish" is nil
28 July 2016 1:33:59.367135 pm
VM: unix - i686 - linux-gnu - CoInterpreter VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May 4 2016
StackToRegisterMappingCogit VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May 4 2016
https://github.com/pharo-project/pharo-vm.git Commit: b8ec25a570d7539653e1d793e97609adb509aaed Date: 2016-05-04 11:14:22 +0200 By: Esteban Lorenzano <[email protected]> Jenkins build #589
Image: Pharo5.0 [Latest update: #50760]
UndefinedObject(Object)>>error:
Receiver: nil
Arguments and temporary variables:
aString: 'MessageNotUnderstood: receiver of "finish" is nil'
Receiver's instance variables:
nil
[ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a WorldMorph(562956288) [world]
err: 'MessageNotUnderstood: receiver of "finish" is nil'
rcvr: nil
errCtx: WorldMorph>>displayWorld
errMorph: a WorldMorph(562956288) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(293089792))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 52
alarms: a Heap()
lastAlarmTime: 54
menuBuilder: nil
BlockClosure>>cull:cull:
Receiver: [ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Sea...etc...
Arguments and temporary variables:
firstArg: 'MessageNotUnderstood: receiver of "finish" is nil'
secondArg: nil
Receiver's instance variables:
outerContext: WorldState>>displayWorldSafely:
startpc: 89
numArgs: 2
[ :ex | errorHandlerBlock cull: ex description cull: ex receiver ] in BlockClosure>>ifError:
Receiver: [ aWorld displayWorld ]
Arguments and temporary variables:
errorHandlerBlock: [ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[...etc...
ex: MessageNotUnderstood: receiver of "finish" is nil
Receiver's instance variables:
outerContext: WorldState>>displayWorldSafely:
startpc: 82
numArgs: 0
BlockClosure>>cull:
Receiver: [ :ex | errorHandlerBlock cull: ex description cull: ex receiver ]
Arguments and temporary variables:
anArg: MessageNotUnderstood: receiver of "finish" is nil
Receiver's instance variables:
outerContext: BlockClosure>>ifError:
startpc: 40
numArgs: 1
Context>>evaluateSignal:
Receiver: BlockClosure>>on:do:
Arguments and temporary variables:
exception: MessageNotUnderstood: receiver of "finish" is nil
value: nil
Receiver's instance variables:
sender: BlockClosure>>ifError:
pc: 18
stackp: 2
method: BlockClosure>>#on:do:
closureOrNil: nil
receiver: [ aWorld displayWorld ]
Context>>handleSignal:
Receiver: BlockClosure>>on:do:
Arguments and temporary variables:
exception: MessageNotUnderstood: receiver of "finish" is nil
Receiver's instance variables:
sender: BlockClosure>>ifError:
pc: 18
stackp: 2
method: BlockClosure>>#on:do:
closureOrNil: nil
receiver: [ aWorld displayWorld ]
MessageNotUnderstood(Exception)>>signal
Receiver: MessageNotUnderstood: receiver of "finish" is nil
Arguments and temporary variables:
Receiver's instance variables:
messageText: nil
tag: nil
signaler: nil
signalContext: MessageNotUnderstood(Exception)>>signal
handlerContext: BlockClosure>>on:do:
outerContext: nil
message: finish
receiver: nil
reachedDefaultHandler: false
UndefinedObject(Object)>>doesNotUnderstand: #finish
Receiver: nil
Arguments and temporary variables:
aMessage: finish
exception: MessageNotUnderstood: receiver of "finish" is nil
resumeValue: nil
Receiver's instance variables:
nil
WorldState>>displayWorld:submorphs:
Receiver: a WorldState
Arguments and temporary variables:
allDamage: an OrderedCollection((0@0) corner: (240@120))
handsToDraw: #()
aWorld: a WorldMorph(562956288) [world]
submorphs: an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
deferredUpdateMode: true
Receiver's instance variables:
hands: an Array(a HandMorph(293089792))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 52
alarms: a Heap()
lastAlarmTime: 54
menuBuilder: nil
WorldMorph>>displayWorld
Receiver: a WorldMorph(562956288) [world]
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (976@665)
owner: nil
submorphs: an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
fullBounds: nil
color: (Color r: 0.937 g: 0.937 b: 0.937 alpha: 1.0)
extension: a MorphExtension (501529344) [other: (dragEnabled -> true) (dropEna...etc...
borderWidth: 0
borderColor: (Color r: 0.861 g: 1.0 b: 0.722 alpha: 1.0)
backgroundMorph: nil
worldState: a WorldState
griddingOn: nil
osWindow: nil
session: nil
[ aWorld displayWorld ] in WorldState>>displayWorldSafely:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a WorldMorph(562956288) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(293089792))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 52
alarms: a Heap()
lastAlarmTime: 54
menuBuilder: nil
BlockClosure>>on:do:
Receiver: [ aWorld displayWorld ]
Arguments and temporary variables:
exception: Error
handlerAction: [ :ex | errorHandlerBlock cull: ex description cull: ex receiver...etc...
Receiver's instance variables:
outerContext: WorldState>>displayWorldSafely:
startpc: 82
numArgs: 0
BlockClosure>>ifError:
Receiver: [ aWorld displayWorld ]
Arguments and temporary variables:
errorHandlerBlock: [ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[...etc...
Receiver's instance variables:
outerContext: WorldState>>displayWorldSafely:
startpc: 82
numArgs: 0
WorldState>>displayWorldSafely:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a WorldMorph(562956288) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(293089792))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 52
alarms: a Heap()
lastAlarmTime: 54
menuBuilder: nil
WorldState>>doOneCycleNowFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a WorldMorph(562956288) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(293089792))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 52
alarms: a Heap()
lastAlarmTime: 54
menuBuilder: nil
WorldState>>doOneCycleFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a WorldMorph(562956288) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(293089792))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 52
alarms: a Heap()
lastAlarmTime: 54
menuBuilder: nil
WorldMorph>>doOneCycle
Receiver: a WorldMorph(562956288) [world]
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (976@665)
owner: nil
submorphs: an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
fullBounds: nil
color: (Color r: 0.937 g: 0.937 b: 0.937 alpha: 1.0)
extension: a MorphExtension (501529344) [other: (dragEnabled -> true) (dropEna...etc...
borderWidth: 0
borderColor: (Color r: 0.861 g: 1.0 b: 0.722 alpha: 1.0)
backgroundMorph: nil
worldState: a WorldState
griddingOn: nil
osWindow: nil
session: nil
[ [ World doOneCycle.
Processor yield.
false ] whileFalse: [ ] ] in MorphicUIManager>>spawnNewProcess
Receiver: a MorphicUIManager
Arguments and temporary variables:
Receiver's instance variables:
interactiveParser: nil
activeTranscript: nil
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
Receiver: [ [ World doOneCycle.
Processor yield.
false ] whileFalse: [ ] ]
Arguments and temporary variables:
Receiver's instance variables:
outerContext: MorphicUIManager>>spawnNewProcess
startpc: 65
numArgs: 0
--- The full stack ---
UndefinedObject(Object)>>error:
[ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
BlockClosure>>cull:cull:
[ :ex | errorHandlerBlock cull: ex description cull: ex receiver ] in BlockClosure>>ifError:
BlockClosure>>cull:
Context>>evaluateSignal:
Context>>handleSignal:
MessageNotUnderstood(Exception)>>signal
UndefinedObject(Object)>>doesNotUnderstand: #finish
WorldState>>displayWorld:submorphs:
WorldMorph>>displayWorld
[ aWorld displayWorld ] in WorldState>>displayWorldSafely:
BlockClosure>>on:do:
BlockClosure>>ifError:
WorldState>>displayWorldSafely:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycle
[ [ World doOneCycle.
Processor yield.
false ] whileFalse: [ ] ] in MorphicUIManager>>spawnNewProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------
Processes and their stacks:
Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
stack:
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------
Process: a Process in DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>runTimerEventLoop
stack:
DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>runTimerEventLoop
[ self runTimerEventLoop ] in DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>startTimerEventLoop
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------
Process: a Process in [ self schedule.
"It is critical that the following has no suspension point so that
the test and the wait primitive are atomic. In addition, if the delay
is no longer being waited on while entering the way we know that it
is expired because the delay has already fired."
beingWaitedOn
ifTrue: [ delaySemaphore wait ]
ifFalse: [ expired := true ] ] in DelayWaitTimeout>>wait
stack:
[ self schedule.
"It is critical that the following has no suspension point so that
the test and the wait primitive are atomic. In addition, if the delay
is no longer being waited on while entering the way we know that it
is expired because the delay has already fired."
beingWaitedOn
ifTrue: [ delaySemaphore wait ]
ifFalse: [ expired := true ] ] in DelayWaitTimeout>>wait
BlockClosure>>ensure:
DelayWaitTimeout>>wait
Semaphore>>waitTimeoutMSecs:
Socket>>waitForConnectionFor:ifTimedOut:
Socket>>connectTo:port:waitForConnectionFor:
ZdcSecureSocketStream(ZdcAbstractSocketStream)>>socketConnectTo:port:
ZdcSecureSocketStream(ZdcSimpleSocketStream)>>connectTo:port:
ZdcSecureSocketStream class(ZdcSimpleSocketStream class)>>openConnectionToHost:port:timeout:
ZnNetworkingUtils>>socketStreamToUrlDirectly:
ZnNetworkingUtils>>socketStreamToUrl:
ZnNetworkingUtils class>>socketStreamToUrl:
ZnClient>>newConnectionTo:
ZnClient>>getConnectionAndExecute
ZnClient>>executeWithRedirectsRemaining:
[ self executeWithRedirectsRemaining: self maxNumberOfRedirects ] in ZnClient>>executeWithRetriesRemaining:
BlockClosure>>on:do:
ZnClient>>executeWithRetriesRemaining:
[ self executeWithRetriesRemaining: self numberOfRetries ] in [ [ self executeWithRetriesRemaining: self numberOfRetries ]
on: Error
do: self ifFailBlock ] in ZnClient>>executeWithTimeout
BlockClosure>>on:do:
------------------------------
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.
" Print stacks of all current processes "
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 NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
[ logStream := self openLog.
aMonadicBlock value: logStream ] in SmalltalkImage>>logDuring:
BlockClosure>>ensure:
SmalltalkImage>>logDuring:
[ Smalltalk logError: aString inContext: aContext.
" Print stacks of all current processes "
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 NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
BlockClosure>>ensure:
NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
NonInteractiveUIManager(CommandLineUIManager)>>unhandledErrorDefaultAction:
UnhandledError>>defaultAction
UndefinedObject>>handleSignal:
UnhandledError(Exception)>>signal
UnhandledError class>>signalForException:
Error>>defaultAction
UndefinedObject>>handleSignal:
Error(Exception)>>signal
Error(Exception)>>signal:
UndefinedObject(Object)>>error:
[ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
BlockClosure>>cull:cull:
------------------------------
Process: a Process in WeakArray class>>finalizationProcess
stack:
WeakArray class>>finalizationProcess
[ self finalizationProcess ] in WeakArray class>>restartFinalizationProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------
Process: a Process in InputEventFetcher>>waitForInput
stack:
InputEventFetcher>>waitForInput
InputEventFetcher>>eventLoop
[ self eventLoop ] in InputEventFetcher>>installEventLoop
[ 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 [ 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
------------------------------
THERE_BE_DRAGONS_HERE
FileDoesNotExist: File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/boom.st
28 July 2016 1:35:53.727574 pm
VM: unix - i686 - linux-gnu - CoInterpreter VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May 4 2016
StackToRegisterMappingCogit VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May 4 2016
https://github.com/pharo-project/pharo-vm.git Commit: b8ec25a570d7539653e1d793e97609adb509aaed Date: 2016-05-04 11:14:22 +0200 By: Esteban Lorenzano <[email protected]> Jenkins build #589
Image: Pharo5.0 [Latest update: #50760]
FileHandle>>streamError
Receiver: a FileHandle
Arguments and temporary variables:
Receiver's instance variables:
reference: File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/boo...etc...
writable: false
id: nil
FileHandle>>readStream
Receiver: a FileHandle
Arguments and temporary variables:
Receiver's instance variables:
reference: File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/boo...etc...
writable: false
id: nil
FileSystem>>readStreamOn:
Receiver: a FileSystem
Arguments and temporary variables:
aResolvable: Path / 'export' / 'foos1' / 'users' / 'dhenrich' / 'dev' / '_home'...etc...
Receiver's instance variables:
workingDirectory: Path / 'export' / 'foos1' / 'users' / 'dhenrich' / 'dev' / '_...etc...
store: an UnixStore
FileReference>>readStream
Receiver: File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/boom.st
Arguments and temporary variables:
Receiver's instance variables:
filesystem: a FileSystem
path: Path / 'export' / 'foos1' / 'users' / 'dhenrich' / 'dev' / '_home' / 'dev...etc...
FileReference(AbstractFileReference)>>readStreamDo:
Receiver: File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/boom.st
Arguments and temporary variables:
aBlock: [ :stream |
self
handleErrorsDuring: [ codeImporter := CodeImporter f...etc...
stream: nil
Receiver's instance variables:
filesystem: a FileSystem
path: Path / 'export' / 'foos1' / 'users' / 'dhenrich' / 'dev' / '_home' / 'dev...etc...
STCommandLineHandler>>installSourceFile:
Receiver: a STCommandLineHandler
Arguments and temporary variables:
codeImporter: nil
aReference: File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/bo...etc...
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
sourceFiles: an OrderedCollection(File @ /export/foos1/users/dhenrich/dev/_home...etc...
[ :reference | self installSourceFile: reference ] in [ sourceFiles do: [ :reference | self installSourceFile: reference ] ] in STCommandLineHandler>>installSourceFiles
Receiver: a STCommandLineHandler
Arguments and temporary variables:
reference: File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/boo...etc...
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
sourceFiles: an OrderedCollection(File @ /export/foos1/users/dhenrich/dev/_home...etc...
OrderedCollection>>do:
Receiver: an OrderedCollection(File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/boom...etc...
Arguments and temporary variables:
aBlock: [ :reference | self installSourceFile: reference ]
index: 1
Receiver's instance variables:
array: an Array(File @ /export/foos1/users/dhenrich/dev/_home/dev/clients/voyag...etc...
firstIndex: 1
lastIndex: 1
[ sourceFiles do: [ :reference | self installSourceFile: reference ] ] in STCommandLineHandler>>installSourceFiles
Receiver: a STCommandLineHandler
Arguments and temporary variables:
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
sourceFiles: an OrderedCollection(File @ /export/foos1/users/dhenrich/dev/_home...etc...
BlockClosure>>ensure:
Receiver: [ sourceFiles do: [ :reference | self installSourceFile: reference ] ]
Arguments and temporary variables:
aBlock: [ sourceFiles := nil ]
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: STCommandLineHandler>>installSourceFiles
startpc: 34
numArgs: 0
STCommandLineHandler>>installSourceFiles
Receiver: a STCommandLineHandler
Arguments and temporary variables:
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
sourceFiles: an OrderedCollection(File @ /export/foos1/users/dhenrich/dev/_home...etc...
STCommandLineHandler>>activate
Receiver: a STCommandLineHandler
Arguments and temporary variables:
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
sourceFiles: an OrderedCollection(File @ /export/foos1/users/dhenrich/dev/_home...etc...
STCommandLineHandler class(CommandLineHandler class)>>activateWith:
Receiver: STCommandLineHandler
Arguments and temporary variables:
aCommandLine: a CommandLineArguments
Receiver's instance variables:
superclass: CommandLineHandler
methodDict: a MethodDictionary(#activate->STCommandLineHandler>>#activate #end-...etc...
format: 65541
layout: a FixedLayout
instanceVariables: nil
organization: a ClassOrganization
subclasses: {EvaluateCommandLineHandler}
name: #STCommandLineHandler
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #CodeImportCommandLineHandlers
traitComposition: {}
localSelectors: nil
[ aCommandLinehandler activateWith: commandLine ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
Receiver: a PharoCommandLineHandler
Arguments and temporary variables:
aCommandLinehandler: STCommandLineHandler
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
BlockClosure>>on:do:
Receiver: [ aCommandLinehandler activateWith: commandLine ]
Arguments and temporary variables:
exception: Exit
handlerAction: [ :exit | ^ self handleExit: exit for: aCommandLinehandler ]
Receiver's instance variables:
outerContext: PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubComm...etc...
startpc: 34
numArgs: 0
PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
Receiver: a PharoCommandLineHandler
Arguments and temporary variables:
aCommandLinehandler: STCommandLineHandler
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand
Receiver: a PharoCommandLineHandler
Arguments and temporary variables:
handlers: an OrderedCollection(STCommandLineHandler)
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument:
Receiver: a PharoCommandLineHandler
Arguments and temporary variables:
aString: '--quit'
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
[ self
handleArgument:
(self arguments
ifEmpty: [ '' ]
ifNotEmpty: [ :arguments | arguments first ]) ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activate
Receiver: a PharoCommandLineHandler
Arguments and temporary variables:
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
BlockClosure>>on:do:
Receiver: [ self
handleArgument:
(self arguments
ifEmpty: [ '' ]
ifNotEmpty: [ :arguments |...etc...
Arguments and temporary variables:
exception: Exit
handlerAction: [ :exit | ^ self handleExit: exit ]
Receiver's instance variables:
outerContext: PharoCommandLineHandler(BasicCommandLineHandler)>>activate
startpc: 49
numArgs: 0
PharoCommandLineHandler(BasicCommandLineHandler)>>activate
Receiver: a PharoCommandLineHandler
Arguments and temporary variables:
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
PharoCommandLineHandler>>activate
Receiver: a PharoCommandLineHandler
Arguments and temporary variables:
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:
Receiver: PharoCommandLineHandler
Arguments and temporary variables:
aCommandLine: a CommandLineArguments
Receiver's instance variables:
superclass: BasicCommandLineHandler
methodDict: a MethodDictionary(#activate->PharoCommandLineHandler>>#activate #c...etc...
format: 65540
layout: a FixedLayout
instanceVariables: nil
organization: a ClassOrganization
subclasses: nil
name: #PharoCommandLineHandler
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'System-CommandLineHandler'
traitComposition: {}
localSelectors: nil
[ super activateWith: aCommandLine ] in PharoCommandLineHandler class>>activateWith:
Receiver: PharoCommandLineHandler
Arguments and temporary variables:
aCommandLine: a CommandLineArguments
Receiver's instance variables:
superclass: BasicCommandLineHandler
methodDict: a MethodDictionary(#activate->PharoCommandLineHandler>>#activate #c...etc...
format: 65540
layout: a FixedLayout
instanceVariables: nil
organization: a ClassOrganization
subclasses: nil
name: #PharoCommandLineHandler
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'System-CommandLineHandler'
traitComposition: {}
localSelectors: nil
NonInteractiveUIManager(UIManager)>>defer:
Receiver: a NonInteractiveUIManager
Arguments and temporary variables:
aBlock: [ super activateWith: aCommandLine ]
Receiver's instance variables:
doNotQuitOnRestart: false
uiManager: nil
PharoCommandLineHandler class>>activateWith:
Receiver: PharoCommandLineHandler
Arguments and temporary variables:
aCommandLine: a CommandLineArguments
Receiver's instance variables:
superclass: BasicCommandLineHandler
methodDict: a MethodDictionary(#activate->PharoCommandLineHandler>>#activate #c...etc...
format: 65540
layout: a FixedLayout
instanceVariables: nil
organization: a ClassOrganization
subclasses: nil
name: #PharoCommandLineHandler
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'System-CommandLineHandler'
traitComposition: {}
localSelectors: nil
[ aCommandLinehandler activateWith: commandLine ] in BasicCommandLineHandler>>activateSubCommand:
Receiver: a BasicCommandLineHandler
Arguments and temporary variables:
aCommandLinehandler: PharoCommandLineHandler
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
BlockClosure>>on:do:
Receiver: [ aCommandLinehandler activateWith: commandLine ]
Arguments and temporary variables:
exception: Exit
handlerAction: [ :exit | ^ self handleExit: exit for: aCommandLinehandler ]
Receiver's instance variables:
outerContext: BasicCommandLineHandler>>activateSubCommand:
startpc: 34
numArgs: 0
BasicCommandLineHandler>>activateSubCommand:
Receiver: a BasicCommandLineHandler
Arguments and temporary variables:
aCommandLinehandler: PharoCommandLineHandler
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
BasicCommandLineHandler>>handleSubcommand
Receiver: a BasicCommandLineHandler
Arguments and temporary variables:
handlers: an OrderedCollection(PharoCommandLineHandler STCommandLineHandler)
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
BasicCommandLineHandler>>handleArgument:
Receiver: a BasicCommandLineHandler
Arguments and temporary variables:
aString: '--quit'
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
[ self
handleArgument:
(self arguments
ifEmpty: [ '' ]
ifNotEmpty: [ :arguments | arguments first ]) ] in BasicCommandLineHandler>>activate
Receiver: a BasicCommandLineHandler
Arguments and temporary variables:
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
BlockClosure>>on:do:
Receiver: [ self
handleArgument:
(self arguments
ifEmpty: [ '' ]
ifNotEmpty: [ :arguments |...etc...
Arguments and temporary variables:
exception: Exit
handlerAction: [ :exit | ^ self handleExit: exit ]
Receiver's instance variables:
outerContext: BasicCommandLineHandler>>activate
startpc: 49
numArgs: 0
BasicCommandLineHandler>>activate
Receiver: a BasicCommandLineHandler
Arguments and temporary variables:
Receiver's instance variables:
commandLine: a CommandLineArguments
session: a WorkingSession
stdout: a VTermOutputDriver
stderr: a VTermOutputDriver
[ self new activate ] in BasicCommandLineHandler class>>startUp:
Receiver: BasicCommandLineHandler
Arguments and temporary variables:
isImageStarting: true
Receiver's instance variables:
superclass: CommandLineHandler
methodDict: a MethodDictionary(#activate->BasicCommandLineHandler>>#activate #a...etc...
format: 65540
layout: a FixedLayout
instanceVariables: nil
organization: a ClassOrganization
subclasses: {PharoCommandLineHandler}
name: #BasicCommandLineHandler
classPool: a Dictionary()
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'System-BasicCommandLineHandler'
traitComposition: {}
localSelectors: nil
BlockClosure>>cull:
Receiver: [ self new activate ]
Arguments and temporary variables:
anArg: true
Receiver's instance variables:
outerContext: BasicCommandLineHandler class>>startUp:
startpc: 43
numArgs: 0
WorkingSession>>executeDeferredStartupActions:
Receiver: a WorkingSession
Arguments and temporary variables:
resuming: true
action: [ self new activate ]
Receiver's instance variables:
manager: a SessionManager
deferredStartupActions: an OrderedCollection([ self managedServers do: [ :each ...etc...
id: an UUID('bf6c0c9b-379d-4898-acce-dc5be9a34a74')
creationTime: 2016-07-28T13:35:53.584432-07:00
WorkingSession>>runStartup:
Receiver: a WorkingSession
Arguments and temporary variables:
isImageStarting: true
Receiver's instance variables:
manager: a SessionManager
deferredStartupActions: an OrderedCollection([ self managedServers do: [ :each ...etc...
id: an UUID('bf6c0c9b-379d-4898-acce-dc5be9a34a74')
creationTime: 2016-07-28T13:35:53.584432-07:00
WorkingSession>>start:
Receiver: a WorkingSession
Arguments and temporary variables:
isImageStarting: true
Receiver's instance variables:
manager: a SessionManager
deferredStartupActions: an OrderedCollection([ self managedServers do: [ :each ...etc...
id: an UUID('bf6c0c9b-379d-4898-acce-dc5be9a34a74')
creationTime: 2016-07-28T13:35:53.584432-07:00
--- The full stack ---
FileHandle>>streamError
FileHandle>>readStream
FileSystem>>readStreamOn:
FileReference>>readStream
FileReference(AbstractFileReference)>>readStreamDo:
STCommandLineHandler>>installSourceFile:
[ :reference | self installSourceFile: reference ] in [ sourceFiles do: [ :reference | self installSourceFile: reference ] ] in STCommandLineHandler>>installSourceFiles
OrderedCollection>>do:
[ sourceFiles do: [ :reference | self installSourceFile: reference ] ] in STCommandLineHandler>>installSourceFiles
BlockClosure>>ensure:
STCommandLineHandler>>installSourceFiles
STCommandLineHandler>>activate
STCommandLineHandler class(CommandLineHandler class)>>activateWith:
[ aCommandLinehandler activateWith: commandLine ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
BlockClosure>>on:do:
PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand
PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument:
[ self
handleArgument:
(self arguments
ifEmpty: [ '' ]
ifNotEmpty: [ :arguments | arguments first ]) ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activate
BlockClosure>>on:do:
PharoCommandLineHandler(BasicCommandLineHandler)>>activate
PharoCommandLineHandler>>activate
PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:
[ super activateWith: aCommandLine ] in PharoCommandLineHandler class>>activateWith:
NonInteractiveUIManager(UIManager)>>defer:
PharoCommandLineHandler class>>activateWith:
[ aCommandLinehandler activateWith: commandLine ] in BasicCommandLineHandler>>activateSubCommand:
BlockClosure>>on:do:
BasicCommandLineHandler>>activateSubCommand:
BasicCommandLineHandler>>handleSubcommand
BasicCommandLineHandler>>handleArgument:
[ self
handleArgument:
(self arguments
ifEmpty: [ '' ]
ifNotEmpty: [ :arguments | arguments first ]) ] in BasicCommandLineHandler>>activate
BlockClosure>>on:do:
BasicCommandLineHandler>>activate
[ self new activate ] in BasicCommandLineHandler class>>startUp:
BlockClosure>>cull:
WorkingSession>>executeDeferredStartupActions:
WorkingSession>>runStartup:
WorkingSession>>start:
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
SessionManager>>snapshot:andQuit:
SmalltalkImage>>snapshot:andQuit:
SmalltalkImage>>saveImageInFileNamed:
SmalltalkImage>>saveAs:
SaveCommandLineHandler>>saveImage
SaveCommandLineHandler>>activate
SaveCommandLineHandler class(CommandLineHandler class)>>activateWith:
[ aCommandLinehandler activateWith: commandLine ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
BlockClosure>>on:do:
PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand:
PharoCommandLineHandler(BasicCommandLineHandler)>>handleSubcommand
PharoCommandLineHandler(BasicCommandLineHandler)>>handleArgument:
[ self
handleArgument:
(self arguments
ifEmpty: [ '' ]
ifNotEmpty: [ :arguments | arguments first ]) ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activate
BlockClosure>>on:do:
PharoCommandLineHandler(BasicCommandLineHandler)>>activate
PharoCommandLineHandler>>activate
PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:
[ super activateWith: aCommandLine ] in PharoCommandLineHandler class>>activateWith:
NonInteractiveUIManager(UIManager)>>defer:
PharoCommandLineHandler class>>activateWith:
[ aCommandLinehandler activateWith: commandLine ] in BasicCommandLineHandler>>activateSubCommand:
BlockClosure>>on:do:
BasicCommandLineHandler>>activateSubCommand:
BasicCommandLineHandler>>handleSubcommand
BasicCommandLineHandler>>handleArgument:
[ self
handleArgument:
(self arguments
ifEmpty: [ '' ]
ifNotEmpty: [ :arguments | arguments first ]) ] in BasicCommandLineHandler>>activate
BlockClosure>>on:do:
BasicCommandLineHandler>>activate
[ self new activate ] in BasicCommandLineHandler class>>startUp:
BlockClosure>>cull:
WorkingSession>>executeDeferredStartupActions:
WorkingSession>>runStartup:
WorkingSession>>start:
SessionManager>>snapshot:andQuit:
SmalltalkImage>>snapshot:andQuit:
[ morphicUI := MorphicUIManager new.
processToKill terminate.
(processToKill == morphicUI uiProcess
or: [ morphicUI uiProcess isTerminated ])
ifTrue: [ morphicUI spawnNewProcess ].
Smalltalk snapshot: true andQuit: true ] in UndefinedObject>>DoIt
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------
Processes and their stacks:
Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
stack:
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------
Process: a Process in DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>runTimerEventLoop
stack:
DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>runTimerEventLoop
[ self runTimerEventLoop ] in DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>startTimerEventLoop
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------
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.
" Print stacks of all current processes "
Smalltalk
logDuring: [ :logger |
logger
nextPutAll: 'Processes and their stacks: ';
cr.
Process allInstances
do: [ :each |
| ctx |
logger
nextPutAll: 'Process: ';
print: each;
creceiver: a WorldState
Arguments and temporary variables:
aWorld: a WorldMorph(562956288) [world]
err: 'MessageNotUnderstood: receiver of "finish" is nil'
rcvr: nil
errCtx: WorldMorph>>displayWorld
errMorph: a WorldMorph(562956288) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(474389248))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 50
alarms: a Heap()
lastAlarmTime: 52
menuBuilder: nil
BlockClosure>>cull:cull:
Receiver: [ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Sea...etc...
Arguments and temporary variables:
firstArg: 'MessageNotUnderstood: receiver of "finish" is nil'
secondArg: nil
Receiver's instance variables:
outerContext: WorldState>>displayWorldSafely:
startpc: 89
numArgs: 2
[ :ex | errorHandlerBlock cull: ex description cull: ex receiver ] in BlockClosure>>ifError:
Receiver: [ aWorld displayWorld ]
Arguments and temporary variables:
|
logger
print: s;
cr ] ].
logger
nextPutAll: '------------------------------';
cr;
cr ] ] ] in NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
BlockClosure>>ensure:
NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
NonInteractiveUIManager(CommandLineUIManager)>>unhandledErrorDefaultAction:
UnhandledError>>defaultAction
UndefinedObject>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
Context>>handleSignal:
UnhandledError(Exception)>>signal
------------------------------
Process: a Process in BIConfigurableFormatter>>bracketWith:around:
stack:
BIConfigurableFormatter>>bracketWith:around:
BIConfigurableFormatter>>visitNode:
BIConfigurableFormatter>>visitMessageNode:
RBMessageNode>>acceptVisitor:
BIConfigurableFormatter(RBProgramNodeVisitor)>>visitNode:
[ needsParenthesis
ifTrue: [ codeStream nextPutAll: self stringInsideParentheses ].
super visitNode: aNode.
(self formatCommentWithStatements
or: [ aNode isMethod or: [ aNode isSequence ] ])
ifFalse: [ self formatCommentsFor: aNode ].
needsParenthesis
ifTrue: [ codeStream nextPutAll: self stringInsideParentheses ] ] in BIConfigurableFormatter>>visitNode:
BIConfigurableFormatter>>bracketWith:around:
BIConfigurableFormatter>>visitNode:
BIConfigurableFormatter>>formatSequenceNodeStatementsFor:
BIConfigurableFormatter>>visitSequenceNode:
RBSequenceNode>>acceptVisitor:
BIConfigurableFormatter(RBProgramNodeVisitor)>>visitNode:
[ needsParenthesis
ifTrue: [ codeStream nextPutAll: self stringInsideParentheses ].
super visitNode: aNode.
(self formatCommentWithStatements
or: [ aNode isMethod or: [ aNode isSequence ] ])
ifFalse: [ self formatCommentsFor: aNode ].
needsParenthesis
ifTrue: [ codeStream nextPutAll: self stringInsideParentheses ] ] in BIConfigurableFormatter>>visitNode:
BIConfigurableFormatter>>bracketWith:around:
BIConfigurableFormatter>>visitNode:
BIConfigurableFormatter>>format:
[ self class new
indent: self indent;
installNewContext: context;
format: aNode ] in BIConfigurableFormatter>>formattedSourceFor:
[ self at: key put: aBlock value ] in IdentityDictionary(Dictionary)>>at:ifAbsentPut:
IdentityDictionary(Dictionary)>>at:ifAbsent:
IdentityDictionary(Dictionary)>>at:ifAbsentPut:
------------------------------
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 InputEventFetcher>>waitForInput
stack:
InputEventFetcher>>waitForInput
InputEventFetcher>>eventLoop
[ self eventLoop ] in 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
------------------------------
===============================================================================
Notice: Errors in script loaded from /export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/boom.st
===============================================================================
THERE_BE_DRAGONS_HERE
MCRepositoryError: filetree:// repository '/export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/dalehenrich/metacello-work:master/repository' does not exist.
28 July 2016 1:38:03.640958 pm
VM: unix - i686 - linux-gnu - CoInterpreter VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May 4 2016
StackToRegisterMappingCogit VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May 4 2016
https://github.com/pharo-project/pharo-vm.git Commit: b8ec25a570d7539653e1d793e97609adb509aaed Date: 2016-05-04 11:14:22 +0200 By: Esteban Lorenzano <[email protected]> Jenkins build #589
Image: Pharo5.0 [Latest update: #50760]
MCFileTreeRepository(MCRepository)>>error:
Receiver: a MCFileTreeRepository(filetree:///export/foos1/users/dhenrich/dev/_home/dev/clients/voyag...etc...
Arguments and temporary variables:
aString: 'filetree:// repository ''/export/foos1/users/dhenrich/dev/_home/dev/c...etc...
Receiver's instance variables:
creationTemplate: nil
cache: nil
allFileNames: nil
cacheFileNames: nil
directory: File @ dalehenrich/metacello-work:master/repository
readonly: nil
repositoryProperties: a Dictionary()
MCFileTreeRepository>>repositoryProperties
Receiver: a MCFileTreeRepository(filetree:///export/foos1/users/dhenrich/dev/_home/dev/clients/voyag...etc...
Arguments and temporary variables:
Receiver's instance variables:
creationTemplate: nil
cache: nil
allFileNames: nil
cacheFileNames: nil
directory: File @ dalehenrich/metacello-work:master/repository
readonly: nil
repositoryProperties: a Dictionary()
MCFileTreeRepository>>directory:
Receiver: a MCFileTreeRepository(filetree:///export/foos1/users/dhenrich/dev/_home/dev/clients/voyag...etc...
Arguments and temporary variables:
aDirectory: File @ dalehenrich/metacello-work:master/repository
Receiver's instance variables:
creationTemplate: nil
cache: nil
allFileNames: nil
cacheFileNames: nil
directory: File @ dalehenrich/metacello-work:master/repository
readonly: nil
repositoryProperties: a Dictionary()
[ :cl |
type = 'filetree'
ifTrue: [ | description headerSize |
description := aRepositorySpec description.
headerSize := 'filetree://' size.
^ cl new
directory:
(self
fileHandleOn:
(aRepositorySpec description
copyFrom: headerSize + 1
to: description size)) ] ] in MetacelloPharo30Platform(MetacelloPlatform)>>createRepository:
Receiver: a MetacelloPharo30Platform
Arguments and temporary variables:
aRepositorySpec: spec repository: 'filetree://dalehenrich/metacello-work:master...etc...
type: 'filetree'
cl: MCFileTreeRepository
description: 'filetree://dalehenrich/metacello-work:master/repository'
headerSize: 11
Receiver's instance variables:
bypassProgressBars: false
bypassGoferLoadUpdateCategories: false
BlockClosure>>cull:
Receiver: [ :cl |
type = 'filetree'
ifTrue: [ | description headerSize |
description := aReposit...etc...
Arguments and temporary variables:
anArg: MCFileTreeRepository
Receiver's instance variables:
outerContext: MetacelloPharo30Platform(MetacelloPlatform)>>createRepository:
startpc: 179
numArgs: 1
SystemDictionary(Dictionary)>>at:ifPresent:
Receiver: a SystemDictionary(lots of globals)
Arguments and temporary variables:
key: #MCFileTreeRepository
aBlock: [ :cl |
type = 'filetree'
ifTrue: [ | description headerSize |
desc...etc...
Receiver's instance variables:
tally: 5812
array: an Array(#SmallDictionary->SmallDictionary #MetacelloExampleProjectConfi...etc...
cachedClassNames: an OrderedCollection(#AColorSelectorMorph #AGroupContentHasBe...etc...
cachedNonClassNames: an OrderedCollection(#ActiveEvent #ActiveHand #ActiveWorld...etc...
SmalltalkImage>>at:ifPresent:
Receiver: Smalltalk
Arguments and temporary variables:
key: #MCFileTreeRepository
aBlock: [ :cl |
type = 'filetree'
ifTrue: [ | description headerSize |
desc...etc...
Receiver's instance variables:
globals: a SystemDictionary(lots of globals)
deferredStartupActions: an OrderedCollection()
specialObjectsArray: an Array(nil false true #Processor->Processor Bitmap Small...etc...
session: an Object
vm: a VirtualMachine
MetacelloPharo30Platform(MetacelloPlatform)>>createRepository:
Receiver: a MetacelloPharo30Platform
Arguments and temporary variables:
aRepositorySpec: spec repository: 'filetree://dalehenrich/metacello-work:master...etc...
type: 'filetree'
Receiver's instance variables:
bypassProgressBars: false
bypassGoferLoadUpdateCategories: false
MetacelloPharo30Platform(MetacelloPharoCommonPlatform)>>createRepository:
Receiver: a MetacelloPharo30Platform
Arguments and temporary variables:
aRepositorySpec: spec repository: 'filetree://dalehenrich/metacello-work:master...etc...
type: 'filetree'
Receiver's instance variables:
bypassProgressBars: false
bypassGoferLoadUpdateCategories: false
MetacelloMCBaselineProject(MetacelloMCProject)>>createRepository:
Receiver: <<error during printing>>
Arguments and temporary variables:
aRepositorySpec: spec repository: 'filetree://dalehenrich/metacello-work:master...etc...
Receiver's instance variables:
versionMap: nil
symbolicVersionMap: nil
errorMap: nil
loader: nil
loaderClass: MetacelloLoadingMCSpecLoader
loadType: nil
configuration: <<error during printing>>
MetacelloRepositorySpec>>createRepository
Receiver: spec repository: 'filetree://dalehenrich/metacello-work:master/repository'
Arguments and temporary variables:
repo: nil
Receiver's instance variables:
project: <<error during printing>>
[ aSpec createRepository ] in [ :aSpec |
| description repo |
description := aSpec description.
(repo := repositories
detect: [ :rep | rep description = description ]
ifNone: [ aSpec createRepository ]) ~~ nil
ifTrue: [ repos add: repo ] ] in MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>repositoriesFrom:ignoreOverrides:
Receiver: a MetacelloFetchingMCSpecLoader(linear load : )
Arguments and temporary variables:
aMetacelloMVRepositorySpecs: an Array(spec repository: 'filetree://dalehenrich/...etc...
ignoreOverrides: false
repositories: an Array(a MCCacheRepository(/export/foos1/users/dhenrich/dev/_ho...etc...
repos: an OrderedCollection()
aSpec: spec repository: 'filetree://dalehenrich/metacello-work:master/repositor...etc...
description: 'filetree://dalehenrich/metacello-work:master/repository'
repo: nil
Receiver's instance variables:
spec: spec
name: 'BaselineOfMetacello';
repository: 'filetree://dalehenrich/...etc...
operator: nil
loaderPolicy: a MetacelloLoaderPolicy
disablePackageCache: false
Array(Collection)>>detect:ifFound:ifNone:
Receiver: an Array(a MCCacheRepository(/export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/pac...etc...
Arguments and temporary variables:
aBlock: [ :rep | rep description = description ]
foundBlock: [ :element | element ]
exceptionBlock: [ aSpec createRepository ]
Receiver's instance variables:
an Array(a MCCacheRepository(/export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/pac...etc...
Array(Collection)>>detect:ifNone:
Receiver: an Array(a MCCacheRepository(/export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/pac...etc...
Arguments and temporary variables:
aBlock: [ :rep | rep description = description ]
exceptionBlock: [ aSpec createRepository ]
Receiver's instance variables:
an Array(a MCCacheRepository(/export/foos1/users/dhenrich/dev/_home/dev/clients/voyage/pac...etc...
[ :aSpec |
| description repo |
description := aSpec description.
(repo := repositories
detect: [ :rep | rep description = description ]
ifNone: [ aSpec createRepository ]) ~~ nil
ifTrue: [ repos add: repo ] ] in MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>repositoriesFrom:ignoreOverrides:
Receiver: a MetacelloFetchingMCSpecLoader(linear load : )
Arguments and temporary variables:
aMetacelloMVRepositorySpecs: an Array(spec repository: 'filetree://dalehenrich/...etc...
ignoreOverrides: false
repositories: an Array(a MCCacheRepository(/export/foos1/users/dhenrich/dev/_ho...etc...
repos: an OrderedCollection()
aSpec: spec repository: 'filetree://dalehenrich/metacello-work:master/repositor...etc...
description: 'filetree://dalehenrich/metacello-work:master/repository'
repo: nil
Receiver's instance variables:
spec: spec
name: 'BaselineOfMetacello';
repository: 'filetree://dalehenrich/...etc...
operator: nil
loaderPolicy: a MetacelloLoaderPolicy
disablePackageCache: false
Array(SequenceableCollection)>>do:
Receiver: an Array(spec repository: 'filetree://dalehenrich/metacello-work:master/repository')
Arguments and temporary variables:
aBlock: [ :aSpec |
| description repo |
description := aSpec description.
(rep...etc...
index: 1
Receiver's instance variables:
an Array(spec repository: 'filetree://dalehenrich/metacello-work:master/repository')
MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>repositoriesFrom:ignoreOverrides:
Receiver: a MetacelloFetchingMCSpecLoader(linear load : )
Arguments and temporary variables:
aMetacelloMVRepositorySpecs: an Array(spec repository: 'filetree://dalehenrich/...etc...
ignoreOverrides: false
repositories: an Array(a MCCacheRepository(/export/foos1/users/dhenrich/dev/_ho...etc...
repos: an OrderedCollection()
Receiver's instance variables:
spec: spec
name: 'BaselineOfMetacello';
repository: 'filetree://dalehenrich/...etc...
operator: nil
loaderPolicy: a MetacelloLoaderPolicy
disablePackageCache: false
MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>repositoriesFrom:
Receiver: a MetacelloFetchingMCSpecLoader(linear load : )
Arguments and temporary variables:
aMetacelloMVRepositorySpecs: an Array(spec repository: 'filetree://dalehenrich/...etc...
Receiver's instance variables:
spec: spec
name: 'BaselineOfMetacello';
repository: 'filetree://dalehenrich/...etc...
operator: nil
loaderPolicy: a MetacelloLoaderPolicy
disablePackageCache: false
MetacelloPackageSpec>>explicitLoadUsing:
Receiver: spec
name: 'BaselineOfMetacello';
repository: 'filetree://dalehenrich/metacello-work:ma...etc...
Arguments and temporary variables:
mcLoader: a MetacelloLoadingMCSpecLoader
wc: a MCWorkingCopy(BaselineOfMetacello)
fetchingSpecLoader: a MetacelloFetchingMCSpecLoader(linear load : )
Receiver's instance variables:
project: <<error during printing>>
MetacelloPackageSpec>>load
Receiver: spec
name: 'BaselineOfMetacello';
repository: 'filetree://dalehenrich/metacello-work:ma...etc...
Arguments and temporary variables:
Receiver's instance variables:
project: <<error during printing>>
[ spec projectPackage load ] in MetacelloScriptEngine>>getBaselineUnconditionalLoad:
Receiver: a MetacelloScriptEngine
Arguments and temporary variables:
unconditionalLoad: true
spec: spec
name: 'Metacello';
repository: 'filetree://dalehenrich/metacello-...etc...
Receiver's instance variables:
root: nil
projectSpec: spec
name: 'Metacello';
repository: 'filetree://dalehenrich/met...etc...
options: a Dictionary(#onConflict->[ :ex | ex allow ] )
BlockClosure>>on:do:
Receiver: [ spec projectPackage load ]
Arguments and temporary variables:
exception: MetacelloIgnorePackageLoaded
handlerAction: [ :ex | ex resume: true ]
Receiver's instance variables:
outerContext: MetacelloScriptEngine>>getBaselineUnconditionalLoad:
startpc: 91
numArgs: 0
MetacelloScriptEngine>>getBaselineUnconditionalLoad:
Receiver: a MetacelloScriptEngine
Arguments and temporary variables:
unconditionalLoad: true
spec: spec
name: 'Metacello';
repository: 'filetree://dalehenrich/metacello-...etc...
Receiver's instance variables:
root: nil
projectSpec: spec
name: 'Metacello';
repository: 'filetree://dalehenrich/met...etc...
options: a Dictionary(#onConflict->[ :ex | ex allow ] )
MetacelloScriptEngine>>getBaselineProjectUnconditionalLoad:
Receiver: a MetacelloScriptEngine
Arguments and temporary variables:
unconditionalLoad: true
project: nil
Receiver's instance variables:
root: nil
projectSpec: spec
name: 'Metacello';
repository: 'filetree://dalehenrich/met...etc...
options: a Dictionary(#onConflict->[ :ex | ex allow ] )
MetacelloMCBaselineProject>>projectForScriptEngine:unconditionalLoad:
Receiver: BaselineOfMetacello(baseline [BaselineOfMetacello], )
Arguments and temporary variables:
aMetacelloScriptEngine: a MetacelloScriptEngine
aBool: false
Receiver's instance variables:
versionMap: a Dictionary('baseline'-><>baseline [BaselineOfMetacello] )
symbolicVersionMap: nil
errorMap: nil
loader: nil
loaderClass: MetacelloLoadingMCSpecLoader
loadType: #linear
configuration: a BaselineOfMetacello
projectAttributes: #()
versionNumberClass: MetacelloVersionNumber
MetacelloMCBaselineProject(MetacelloProject)>>projectForScriptEngine:
Receiver: BaselineOfMetacello(baseline [BaselineOfMetacello], )
Arguments and temporary variables:
aMetacelloScriptEngine: a MetacelloScriptEngine
Receiver's instance variables:
versionMap: a Dictionary('baseline'-><>baseline [BaselineOfMetacello] )
symbolicVersionMap: nil
errorMap: nil
loader: nil
loaderClass: MetacelloLoadingMCSpecLoader
loadType: #linear
configuration: a BaselineOfMetacello
projectAttributes: #()
versionNumberClass: MetacelloVersionNumber
MetacelloMCBaselineOfProjectSpec(MetacelloMCProjectSpec)>>versionForScriptEngine:
Receiver: spec
name: 'Metacello';
repository: 'filetree://dalehenrich/metacello-work:master/repos...etc...
Arguments and temporary variables:
aMetacelloScriptEngine: a MetacelloScriptEngine
prj: BaselineOfMetacello(baseline [BaselineOfMetacello], )
Receiver's instance variables:
project: <<error during printing>>
[ | version loadedSpec |
self setDefaultsAndValidateProjectSpec.
[ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ]
on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
do:
[ :ex | ex handleOnDownGrade: onDownGradeBlock onUpgrade: onUpgradeBlock ].
version := loadedSpec versionForScriptEngine: self.
self
root:
(required isEmpty
ifTrue: [ version load ]
ifFalse: [ version load: required ]) loadDirective.
loadedSpec loads: required.
MetacelloProjectRegistration
registrationForProjectSpec: loadedSpec
ifAbsent: [ :new |
new
loadedInImage: true;
registerProject ]
ifPresent: [ :existing :new |
existing
copyOnWrite: [ :existingCopy |
existingCopy
loadedInImage: true;
merge: new ] ] ] in [ self
handleNotificationsForAction: [ | version loadedSpec |
self setDefaultsAndValidateProjectSpec.
[ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ]THERE_BE_DRAGONS_HERE
Error: MessageNotUnderstood: receiver of "finish" is nil
28 July 2016 1:38:03.740322 pm
VM: unix - i686 - linux-gnu - CoInterpreter VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May 4 2016
StackToRegisterMappingCogit VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May 4 2016
https://github.com/pharo-project/pharo-vm.git Commit: b8ec25a570d7539653e1d793e97609adb509aaed Date: 2016-05-04 11:14:22 +0200 By: Esteban Lorenzano <[email protected]> Jenkins build #589
Image: Pharo5.0 [Latest update: #50760]
UndefinedObject(Object)>>error:
Receiver: nil
Arguments and temporary variables:
aString: 'MessageNotUnderstood: receiver of "finish" is nil'
Receiver's instance variables:
nil
[ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a WorldMorph(562956288) [world]
err: 'MessageNotUnderstood: receiver of "finish" is nil'
rcvr: nil
errCtx: WorldMorph>>displayWorld
errMorph: a WorldMorph(562956288) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(1024703232))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 52
alarms: a Heap()
lastAlarmTime: 54
menuBuilder: nil
BlockClosure>>cull:cull:
Receiver: [ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Sea...etc...
Arguments and temporary variables:
firstArg: 'MessageNotUnderstood: receiver of "finish" is nil'
secondArg: nil
Receiver's instance variables:
outerContext: WorldState>>displayWorldSafely:
startpc: 89
numArgs: 2
[ :ex | errorHandlerBlock cull: ex description cull: ex receiver ] in BlockClosure>>ifError:
Receiver: [ aWorld displayWorld ]
Arguments and temporary variables:
errorHandlerBlock: [ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[...etc...
ex: MessageNotUnderstood: receiver of "finish" is nil
Receiver's instance variables:
outerContext: WorldState>>displayWorldSafely:
startpc: 82
numArgs: 0
BlockClosure>>cull:
Receiver: [ :ex | errorHandlerBlock cull: ex description cull: ex receiver ]
Arguments and temporary variables:
anArg: MessageNotUnderstood: receiver of "finish" is nil
Receiver's instance variables:
outerContext: BlockClosure>>ifError:
startpc: 40
numArgs: 1
Context>>evaluateSignal:
Receiver: BlockClosure>>on:do:
Arguments and temporary variables:
exception: MessageNotUnderstood: receiver of "finish" is nil
value: nil
Receiver's instance variables:
sender: BlockClosure>>ifError:
pc: 18
stackp: 2
method: BlockClosure>>#on:do:
closureOrNil: nil
receiver: [ aWorld displayWorld ]
Context>>handleSignal:
Receiver: BlockClosure>>on:do:
Arguments and temporary variables:
exception: MessageNotUnderstood: receiver of "finish" is nil
Receiver's instance variables:
sender: BlockClosure>>ifError:
pc: 18
stackp: 2
method: BlockClosure>>#on:do:
closureOrNil: nil
receiver: [ aWorld displayWorld ]
MessageNotUnderstood(Exception)>>signal
Receiver: MessageNotUnderstood: receiver of "finish" is nil
Arguments and temporary variables:
Receiver's instance variables:
messageText: nil
tag: nil
signaler: nil
signalContext: MessageNotUnderstood(Exception)>>signal
handlerContext: BlockClosure>>on:do:
outerContext: nil
message: finish
receiver: nil
reachedDefaultHandler: false
UndefinedObject(Object)>>doesNotUnderstand: #finish
Receiver: nil
Arguments and temporary variables:
aMessage: finish
exception: MessageNotUnderstood: receiver of "finish" is nil
resumeValue: nil
Receiver's instance variables:
nil
WorldState>>displayWorld:submorphs:
Receiver: a WorldState
Arguments and temporary variables:
allDamage: an OrderedCollection((0@0) corner: (240@120))
handsToDraw: #()
aWorld: a WorldMorph(562956288) [world]
submorphs: an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
deferredUpdateMode: true
Receiver's instance variables:
hands: an Array(a HandMorph(1024703232))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 52
alarms: a Heap()
lastAlarmTime: 54
menuBuilder: nil
WorldMorph>>displayWorld
Receiver: a WorldMorph(562956288) [world]
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (976@665)
owner: nil
submorphs: an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
fullBounds: nil
color: (Color r: 0.937 g: 0.937 b: 0.937 alpha: 1.0)
extension: a MorphExtension (590118656) [other: (dragEnabled -> true) (dropEna...etc...
borderWidth: 0
borderColor: (Color r: 0.861 g: 1.0 b: 0.722 alpha: 1.0)
backgroundMorph: nil
worldState: a WorldState
griddingOn: nil
osWindow: nil
session: nil
[ aWorld displayWorld ] in WorldState>>displayWorldSafely:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a WorldMorph(562956288) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(1024703232))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 52
alarms: a Heap()
lastAlarmTime: 54
menuBuilder: nil
BlockClosure>>on:do:
Receiver: [ aWorld displayWorld ]
Arguments and temporary variables:
exception: Error
handlerAction: [ :ex | errorHandlerBlock cull: ex description cull: ex receiver...etc...
Receiver's instance variables:
outerContext: WorldState>>displayWorldSafely:
startpc: 82
numArgs: 0
BlockClosure>>ifError:
Receiver: [ aWorld displayWorld ]
Arguments and temporary variables:
errorHandlerBlock: [ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[...etc...
Receiver's instance variables:
outerContext: WorldState>>displayWorldSafely:
startpc: 82
numArgs: 0
WorldState>>displayWorldSafely:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a WorldMorph(562956288) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(1024703232))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 52
alarms: a Heap()
lastAlarmTime: 54
menuBuilder: nil
WorldState>>doOneCycleNowFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a WorldMorph(562956288) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(1024703232))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 52
alarms: a Heap()
lastAlarmTime: 54
menuBuilder: nil
WorldState>>doOneCycleFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a WorldMorph(562956288) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(1024703232))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 52
alarms: a Heap()
lastAlarmTime: 54
menuBuilder: nil
WorldMorph>>doOneCycle
Receiver: a WorldMorph(562956288) [world]
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (976@665)
owner: nil
submorphs: an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
fullBounds: nil
color: (Color r: 0.937 g: 0.937 b: 0.937 alpha: 1.0)
extension: a MorphExtension (590118656) [other: (dragEnabled -> true) (dropEna...etc...
borderWidth: 0
borderColor: (Color r: 0.861 g: 1.0 b: 0.722 alpha: 1.0)
backgroundMorph: nil
worldState: a WorldState
griddingOn: nil
osWindow: nil
session: nil
[ [ World doOneCycle.
Processor yield.
false ] whileFalse: [ ] ] in MorphicUIManager>>spawnNewProcess
Receiver: a MorphicUIManager
Arguments and temporary variables:
Receiver's instance variables:
interactiveParser: nil
activeTranscript: nil
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
Receiver: [ [ World doOneCycle.
Processor yield.
false ] whileFalse: [ ] ]
Arguments and temporary variables:
Receiver's instance variables:
outerContext: MorphicUIManager>>spawnNewProcess
startpc: 65
numArgs: 0
--- The full stack ---
UndefinedObject(Object)>>error:
[ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
BlockClosure>>cull:cull:
[ :ex | errorHandlerBlock cull: ex description cull: ex receiver ] in BlockClosure>>ifError:
BlockClosure>>cull:
Context>>evaluateSignal:
Context>>handleSignal:
MessageNotUnderstood(Exception)>>signal
UndefinedObject(Object)>>doesNotUnderstand: #finish
WorldState>>displayWorld:submorphs:
WorldMorph>>displayWorld
[ aWorld displayWorld ] in WorldState>>displayWorldSafely:
BlockClosure>>on:do:
BlockClosure>>ifError:
WorldState>>displayWorldSafely:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycle
[ [ World doOneCycle.
Processor yield.
false ] whileFalse: [ ] ] in MorphicUIManager>>spawnNewProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------
a MethodDictionary(#=->MetacelloProjectRegistration>>#= #baseName->...etc...
format: 65543
layout: a FixedLayout
instanceVariables: nil
organization: a ClassOrganization
subclasses: nil
name: #MetacelloProjectRegistration
classPool: a Dictionary(#Registry->a MetacelloProjectRegistry )
sharedPools: an OrderedCollection()
environment: a SystemDictionary(lots of globals)
category: #'Metacello-Core-Scripts'
traitComposition: {}
localSelectors: nil
--- The full stack ---
MCFileTreeRepository(MCRepository)>>error:
MCFileTreeRepository>>repositoryProperties
MCFileTreeRepository>>directory:
[ :cl |
type = 'filetree'
ifTrue: [ | description headerSize |
description := aRepositorySpec description.
headerSize := 'filetree://' size.
^ cl new
directory:
(self
fileHandleOn:
(aRepositorySpec description
copyFrom: headerSize + 1
to: description size)) ] ] in MetacelloPharo30Platform(MetacelloPlatform)>>createRepository:
BlockClosure>>cull:
SystemDictionary(Dictionary)>>at:ifPresent:
SmalltalkImage>>at:ifPresent:
MetacelloPharo30Platform(MetacelloPlatform)>>createRepository:
MetacelloPharo30Platform(MetacelloPharoCommonPlatform)>>creaProcesses and their stacks:
Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
stack:
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------
Process: a Process in DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>runTimerEventLoop
stack:
DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>runTimerEventLoop
[ self runTimerEventLoop ] in DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>startTimerEventLoop
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------
Process: a Process in Array(SequenceableCollection)>>do:
stack:
Array(SequenceableCollection)>>do:
BIConfigurableFormatter>>formatCommentsFor:
[ :each |
codeStream nextPut: $:.
self visitNode: each.
self formatCommentWithStatements
ifTrue: [ self formatCommentsFor: each ].
self space ] in BIConfigurableFormatter>>formatBlockArgumentsFor:
OrderedCollection>>do:
BIConfigurableFormatter>>formatBlockArgumentsFor:
BIConfigurableFormatter>>formatBlock:
[ self formatBlock: aBlockNode ] in BIConfigurableFormatter>>visitBlockNode:
BlockClosure>>ensure:
BIConfigurableFormatter>>bracketWith:around:
BIConfigurableFormatter>>visitBlockNode:
RBBlockNode>>acceptVisitor:
BIConfigurableFormatter(RBProgramNodeVisitor)>>visitNode:
[ needsParenthesis
ifTrue: [ codeStream nextPutAll: self stringInsideParentheses ].
super visitNode: aNode.
(self formatCommentWithStatements
or: [ aNode isMethod or: [ aNode isSequence ] ])
ifFalse: [ self formatCommentsFor: aNode ].
needsParenthesis
ifTrue: [ codeStream nextPutAll: self stringInsideParentheses ] ] in BIConfigurableFormatter>>visitNode:
BIConfigurableFormatter>>bracketWith:around:
BIConfigurableFormatter>>visitNode:
BIConfigurableFormatter>>format:
[ self class new
indent: self indent;
installNewContext: context;
format: aNode ] in BIConfigurableFormatter>>formattedSourceFor:
[ self at: key put: aBlock value ] in IdentityDictionary(Dictionary)>>at:ifAbsentPut:
IdentityDictionary(Dictionary)>>at:ifAbsent:
IdentityDictionary(Dictionary)>>at:ifAbsentPut:
------------------------------
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.
" Print stacks of all current processes "
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 NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
[ logStream := self openLog.
aMonadicBlock value: logStream ] in SmalltalkImage>>logDuring:
BlockClosure>>ensure:
SmalltalkImage>>logDuring:
[ Smalltalk logError: aString inContext: aContext.
" Print stacks of all current processes "
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 NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
BlockClosure>>ensure:
NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
NonInteractiveUIManager(CommandLineUIManager)>>unhandledErrorDefaultAction:
UnhandledError>>defaultAction
UndefinedObject>>handleSignal:
UnhandledError(Exception)>>signal
UnhandledError class>>signalForException:
Error>>defaultAction
UndefinedObject>>handleSignal:
Error(Exception)>>signal
Error(Exception)>>signal:
UndefinedObject(Object)>>error:
[ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
BlockClosure>>cull:cull:
------------------------------
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 InputEventFetcher>>waitForInput
stack:
InputEventFetcher>>waitForInput
InputEventFetcher>>eventLoop
[ self eventLoop ] in 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
------------------------------
jectDowngrade , MetacelloAllowProjectUpgrade
, MetacelloAllowConflictingProjectUpgrade
do:
[ :ex | ex handleResolutionFor: self ]
"option handlers need to be outermost set of handlers ... last line of defense before users are involved" ]
on: MetacelloAllowLockedProjectChange
do:
[ :ex | ex handleResolutionFor: self ]
"MetacelloAllowLockedProjectChange need to be outermost handler ... since it is signaled from second line of handlers" ] in MetacelloScriptEngine>>handleNotificationsForAction:
BlockClosure>>on:do:
MetacelloScriptEngine>>handleNotificationsForAction:
[ self
handleNotificationsForAction: [ | version loadedSpec |
self setDefaultsAndValidateProjectSpec.
[ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ]
on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
do:
[ :ex | ex handleOnDownGrade: onDownGradeBlock onUpgrade: onUpgradeBlock ].
version := loadedSpec versionForScriptEngine: self.
self
root:
(required isEmpty
ifTrue: [ version load ]
ifFalse: [ version load: required ]) loadDirective.
loadedSpec loads: required.
MetacelloProjectRegistration
registrationForProjectSpec: loadedSpec
ifAbsent: [ :new |
new
loadedInImage: true;
registerProject ]
ifPresent: [ :existing :new |
existing
copyOnWrite: [ :existingCopy |
existingCopy
loadedInImage: true;
merge: new ] ] ] ] in MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade:
BlockClosure>>ensure:
MetacelloProjectRegistration class>>copyRegistryRestoreOnErrorWhile:
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade:
MetacelloScriptEngine>>load:
[ :projectSpec |
| engine |
engine := MetacelloScriptEngine new
options: self options copy;
projectSpec: projectSpec;
yourself.
engine perform: actionArg key withArguments: actionArg value.
engine root ifNotNil: [ :root | self roots add: root ] ] in MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute:
THERE_BE_DRAGONS_HERE
Error: MessageNotUnderstood: receiver of "finish" is nil
28 July 2016 1:38:54.448537 pm
VM: unix - i686 - linux-gnu - CoInterpreter VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May 4 2016
StackToRegisterMappingCogit VMMaker.oscog-eem.1855 uuid: d8e4a3c2-a3bf-4adc-b224-8012903a1ef4 May 4 2016
https://github.com/pharo-project/pharo-vm.git Commit: b8ec25a570d7539653e1d793e97609adb509aaed Date: 2016-05-04 11:14:22 +0200 By: Esteban Lorenzano <[email protected]> Jenkins build #589
Image: Pharo5.0 [Latest update: #50760]
UndefinedObject(Object)>>error:
Receiver: nil
Arguments and temporary variables:
aString: 'MessageNotUnderstood: receiver of "finish" is nil'
Receiver's instance variables:
nil
[ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a WorldMorph(562956288) [world]
err: 'MessageNotUnderstood: receiver of "finish" is nil'
rcvr: nil
errCtx: WorldMorph>>displayWorld
errMorph: a WorldMorph(562956288) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(265251328))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 51
alarms: a Heap()
lastAlarmTime: 53
menuBuilder: nil
BlockClosure>>cull:cull:
Receiver: [ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Sea...etc...
Arguments and temporary variables:
firstArg: 'MessageNotUnderstood: receiver of "finish" is nil'
secondArg: nil
Receiver's instance variables:
outerContext: WorldState>>displayWorldSafely:
startpc: 89
numArgs: 2
[ :ex | errorHandlerBlock cull: ex description cull: ex receiver ] in BlockClosure>>ifError:
Receiver: [ aWorld displayWorld ]
Arguments and temporary variables:
errorHandlerBlock: [ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[...etc...
ex: MessageNotUnderstood: receiver of "finish" is nil
Receiver's instance variables:
outerContext: WorldState>>displayWorldSafely:
startpc: 82
numArgs: 0
BlockClosure>>cull:
Receiver: [ :ex | errorHandlerBlock cull: ex description cull: ex receiver ]
Arguments and temporary variables:
anArg: MessageNotUnderstood: receiver of "finish" is nil
Receiver's instance variables:
outerContext: BlockClosure>>ifError:
startpc: 40
numArgs: 1
Context>>evaluateSignal:
Receiver: BlockClosure>>on:do:
Arguments and temporary variables:
exception: MessageNotUnderstood: receiver of "finish" is nil
value: nil
Receiver's instance variables:
sender: BlockClosure>>ifError:
pc: 18
stackp: 2
method: BlockClosure>>#on:do:
closureOrNil: nil
receiver: [ aWorld displayWorld ]
Context>>handleSignal:
Receiver: BlockClosure>>on:do:
Arguments and temporary variables:
exception: MessageNotUnderstood: receiver of "finish" is nil
Receiver's instance variables:
sender: BlockClosure>>ifError:
pc: 18
stackp: 2
method: BlockClosure>>#on:do:
closureOrNil: nil
receiver: [ aWorld displayWorld ]
MessageNotUnderstood(Exception)>>signal
Receiver: MessageNotUnderstood: receiver of "finish" is nil
Arguments and temporary variables:
Receiver's instance variables:
messageText: nil
tag: nil
signaler: nil
signalContext: MessageNotUnderstood(Exception)>>signal
handlerContext: BlockClosure>>on:do:
outerContext: nil
message: finish
receiver: nil
reachedDefaultHandler: false
UndefinedObject(Object)>>doesNotUnderstand: #finish
Receiver: nil
Arguments and temporary variables:
aMessage: finish
exception: MessageNotUnderstood: receiver of "finish" is nil
resumeValue: nil
Receiver's instance variables:
nil
WorldState>>displayWorld:submorphs:
Receiver: a WorldState
Arguments and temporary variables:
allDamage: an OrderedCollection((0@0) corner: (240@120))
handsToDraw: #()
aWorld: a WorldMorph(562956288) [world]
submorphs: an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
deferredUpdateMode: true
Receiver's instance variables:
hands: an Array(a HandMorph(265251328))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 51
alarms: a Heap()
lastAlarmTime: 53
menuBuilder: nil
WorldMorph>>displayWorld
Receiver: a WorldMorph(562956288) [world]
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (976@665)
owner: nil
submorphs: an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
fullBounds: nil
color: (Color r: 0.937 g: 0.937 b: 0.937 alpha: 1.0)
extension: a MorphExtension (474891008) [other: (dragEnabled -> true) (dropEna...etc...
borderWidth: 0
borderColor: (Color r: 0.861 g: 1.0 b: 0.722 alpha: 1.0)
backgroundMorph: nil
worldState: a WorldState
griddingOn: nil
osWindow: nil
session: nil
[ aWorld displayWorld ] in WorldState>>displayWorldSafely:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a WorldMorph(562956288) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(265251328))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 51
alarms: a Heap()
lastAlarmTime: 53
menuBuilder: nil
BlockClosure>>on:do:
Receiver: [ aWorld displayWorld ]
Arguments and temporary variables:
exception: Error
handlerAction: [ :ex | errorHandlerBlock cull: ex description cull: ex receiver...etc...
Receiver's instance variables:
outerContext: WorldState>>displayWorldSafely:
startpc: 82
numArgs: 0
BlockClosure>>ifError:
Receiver: [ aWorld displayWorld ]
Arguments and temporary variables:
errorHandlerBlock: [ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[...etc...
Receiver's instance variables:
outerContext: WorldState>>displayWorldSafely:
startpc: 82
numArgs: 0
WorldState>>displayWorldSafely:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a WorldMorph(562956288) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(265251328))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 51
alarms: a Heap()
lastAlarmTime: 53
menuBuilder: nil
WorldState>>doOneCycleNowFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a WorldMorph(562956288) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(265251328))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 51
alarms: a Heap()
lastAlarmTime: 53
menuBuilder: nil
WorldState>>doOneCycleFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a WorldMorph(562956288) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(265251328))
viewBox: (0@0) corner: (976@665)
canvas: nil
damageRecorder: a DamageRecorder
stepList: a Heap()
lastStepTime: 2912
lastStepMessage: nil
lastCycleTime: 51
alarms: a Heap()
lastAlarmTime: 53
menuBuilder: nil
WorldMorph>>doOneCycle
Receiver: a WorldMorph(562956288) [world]
Arguments and temporary variables:
Receiver's instance variables:
bounds: (0@0) corner: (976@665)
owner: nil
submorphs: an Array(a TaskbarMorph(804941056) a SystemWindow(426322176) an Imag...etc...
fullBounds: nil
color: (Color r: 0.937 g: 0.937 b: 0.937 alpha: 1.0)
extension: a MorphExtension (474891008) [other: (dragEnabled -> true) (dropEna...etc...
borderWidth: 0
borderColor: (Color r: 0.861 g: 1.0 b: 0.722 alpha: 1.0)
backgroundMorph: nil
worldState: a WorldState
griddingOn: nil
osWindow: nil
session: nil
[ [ World doOneCycle.
Processor yield.
false ] whileFalse: [ ] ] in MorphicUIManager>>spawnNewProcess
Receiver: a MorphicUIManager
Arguments and temporary variables:
Receiver's instance variables:
interactiveParser: nil
activeTranscript: nil
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
Receiver: [ [ World doOneCycle.
Processor yield.
false ] whileFalse: [ ] ]
Arguments and temporary variables:
Receiver's instance variables:
outerContext: MorphicUIManager>>spawnNewProcess
startpc: 65
numArgs: 0
--- The full stack ---
UndefinedObject(Object)>>error:
[ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
BlockClosure>>cull:cull:
[ :ex | errorHandlerBlock cull: ex description cull: ex receiver ] in BlockClosure>>ifError:
BlockClosure>>cull:
Context>>evaluateSignal:
Context>>handleSignal:
MessageNotUnderstood(Exception)>>signal
UndefinedObject(Object)>>doesNotUnderstand: #finish
WorldState>>displayWorld:submorphs:
WorldMorph>>displayWorld
[ aWorld displayWorld ] in WorldState>>displayWorldSafely:
BlockClosure>>on:do:
BlockClosure>>ifError:
WorldState>>displayWorldSafely:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycle
[ [ World doOneCycle.
Processor yield.
false ] whileFalse: [ ] ] in MorphicUIManager>>spawnNewProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
-------------------------------------------------------------------------------
Processes and their stacks:
Process: a Process in [ self value.
Processor terminateActive ] in BlockClosure>>newProcess
stack:
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------
Process: a Process in DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>runTimerEventLoop
stack:
DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>runTimerEventLoop
[ self runTimerEventLoop ] in DelayExperimentalSpinScheduler(DelayMicrosecondScheduler)>>startTimerEventLoop
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------
Process: a Process in DelayExperimentalSpinScheduler>>unschedule:
stack:
DelayExperimentalSpinScheduler>>unschedule:
DelayWaitTimeout(Delay)>>unschedule
[ self unschedule ] in DelayWaitTimeout>>wait
BlockClosure>>ensure:
DelayWaitTimeout>>wait
Semaphore>>waitTimeoutMSecs:
Socket>>waitForConnectionFor:ifTimedOut:
Socket>>connectTo:port:waitForConnectionFor:
ZdcSecureSocketStream(ZdcAbstractSocketStream)>>socketConnectTo:port:
ZdcSecureSocketStream(ZdcSimpleSocketStream)>>connectTo:port:
ZdcSecureSocketStream class(ZdcSimpleSocketStream class)>>openConnectionToHost:port:timeout:
ZnNetworkingUtils>>socketStreamToUrlDirectly:
ZnNetworkingUtils>>socketStreamToUrl:
ZnNetworkingUtils class>>socketStreamToUrl:
ZnClient>>newConnectionTo:
ZnClient>>getConnectionAndExecute
ZnClient>>executeWithRedirectsRemaining:
[ self executeWithRedirectsRemaining: self maxNumberOfRedirects ] in ZnClient>>executeWithRetriesRemaining:
BlockClosure>>on:do:
ZnClient>>executeWithRetriesRemaining:
------------------------------
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.
" Print stacks of all current processes "
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 NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
[ logStream := self openLog.
aMonadicBlock value: logStream ] in SmalltalkImage>>logDuring:
BlockClosure>>ensure:
SmalltalkImage>>logDuring:
[ Smalltalk logError: aString inContext: aContext.
" Print stacks of all current processes "
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 NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
BlockClosure>>ensure:
NonInteractiveUIManager(CommandLineUIManager)>>quitFrom:withMessage:
NonInteractiveUIManager(CommandLineUIManager)>>unhandledErrorDefaultAction:
UnhandledError>>defaultAction
UndefinedObject>>handleSignal:
UnhandledError(Exception)>>signal
UnhandledError class>>signalForException:
Error>>defaultAction
UndefinedObject>>handleSignal:
Error(Exception)>>signal
Error(Exception)>>signal:
UndefinedObject(Object)>>error:
[ :err :rcvr |
| errCtx errMorph |
errCtx := thisContext.
[ errCtx := errCtx sender.
"Search the sender chain to find the morph causing the problem"
[ errCtx notNil and: [ errCtx receiver isMorph not ] ]
whileTrue: [ errCtx := errCtx sender ].
"If we're at the root of the context chain then we have a fatal drawing problem"
errCtx ifNil: [ ^ self handleFatalDrawingError: err ].
errMorph := errCtx receiver.
"If the morph causing the problem has already the #drawError flag set,
then search for the next morph above in the caller chain."
errMorph hasProperty: #errorOnDraw ] whileTrue.
errMorph setProperty: #errorOnDraw toValue: true.
"Install the old error handler, so we can re-raise the error"
rcvr error: err ] in WorldState>>displayWorldSafely:
BlockClosure>>cull:cull:
------------------------------
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 InputEventFetcher>>waitForInput
stack:
InputEventFetcher>>waitForInput
InputEventFetcher>>eventLoop
[ self eventLoop ] in 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
------------------------------