THERE_BE_DRAGONS_HERE Error: stop: true was sent to running server! 25 July 2017 10:28:58.7226 pm VM: Win32 - IX86 - 10.0 - CoInterpreter VMMaker.oscog-eem.2254 uuid: 4f2c2cce-f4a2-469a-93f1-97ed941df0ad Jul 20 2017 StackToRegisterMappingCogit VMMaker.oscog-eem.2252 uuid: 2f3e9b0e-ecd3-4adf-b092-cce2e2587a5c Jul 20 2017 VM: 201707201942 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date: Thu Jul 20 12:42:21 2017 -0700 $ Plugins: 201707201942 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Image: Pharo6.0 [Latest update: #60510] ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>stop: Receiver: a ZnManagingMultiThreadedServer(running 4998) Arguments and temporary variables: unregister: true Receiver's instance variables: options: a Dictionary(#delegate->a TowergameDelegate #port->4998 ) sessionManager: nil process: a Process in [ self schedule. "It is critical that the following has n...etc... serverSocket: a Socket[waitingForConnection] logLevel: 3 lock: nil connections: an OrderedCollection() ZnManagingMultiThreadedServer>>stop: Receiver: a ZnManagingMultiThreadedServer(running 4998) Arguments and temporary variables: unregister: true Receiver's instance variables: options: a Dictionary(#delegate->a TowergameDelegate #port->4998 ) sessionManager: nil process: a Process in [ self schedule. "It is critical that the following has n...etc... serverSocket: a Socket[waitingForConnection] logLevel: 3 lock: nil connections: an OrderedCollection() ZnManagingMultiThreadedServer(ZnServer)>>stop Receiver: a ZnManagingMultiThreadedServer(running 4998) Arguments and temporary variables: Receiver's instance variables: options: a Dictionary(#delegate->a TowergameDelegate #port->4998 ) sessionManager: nil process: a Process in [ self schedule. "It is critical that the following has n...etc... serverSocket: a Socket[waitingForConnection] logLevel: 3 lock: nil connections: an OrderedCollection() ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>start Receiver: a ZnManagingMultiThreadedServer(running 4998) Arguments and temporary variables: Receiver's instance variables: options: a Dictionary(#delegate->a TowergameDelegate #port->4998 ) sessionManager: nil process: a Process in [ self schedule. "It is critical that the following has n...etc... serverSocket: a Socket[waitingForConnection] logLevel: 3 lock: nil connections: an OrderedCollection() [ :each | each start ] in [ self managedServers do: [ :each | each start ] ] in [ :manager | manager default currentSession addDeferredStartupAction: [ self managedServers do: [ :each | each start ] ] ] in ZnServer class>>startUp: Receiver: ZnServer Arguments and temporary variables: resuming: true manager: SessionManager each: a ZnManagingMultiThreadedServer(running 4998) Receiver's instance variables: superclass: Object methodDict: a MethodDictionary(#authenticator->ZnServer>>#authenticator #authen...etc... format: 65538 layout: a FixedLayout instanceVariables: nil organization: a ClassOrganization subclasses: {ZnSingleThreadedServer} name: #ZnServer classPool: a Dictionary(#AlwaysRestart->true #ManagedServers->an IdentitySet(a ...etc... sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'Zinc-HTTP-Client-Server' traitComposition: {} localSelectors: nil IdentitySet(Set)>>do: Receiver: an IdentitySet(a ZnManagingMultiThreadedServer(running 4998)) Arguments and temporary variables: aBlock: [ :each | each start ] index: 3 each: a ZnManagingMultiThreadedServer(running 4998) Receiver's instance variables: tally: 1 array: an Array(nil nil a ZnManagingMultiThreadedServer(running 4998) nil nil n...etc... [ self managedServers do: [ :each | each start ] ] in [ :manager | manager default currentSession addDeferredStartupAction: [ self managedServers do: [ :each | each start ] ] ] in ZnServer class>>startUp: Receiver: ZnServer Arguments and temporary variables: resuming: true manager: SessionManager Receiver's instance variables: superclass: Object methodDict: a MethodDictionary(#authenticator->ZnServer>>#authenticator #authen...etc... format: 65538 layout: a FixedLayout instanceVariables: nil organization: a ClassOrganization subclasses: {ZnSingleThreadedServer} name: #ZnServer classPool: a Dictionary(#AlwaysRestart->true #ManagedServers->an IdentitySet(a ...etc... sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'Zinc-HTTP-Client-Server' traitComposition: {} localSelectors: nil BlockClosure>>cull: Receiver: [ self managedServers do: [ :each | each start ] ] Arguments and temporary variables: anArg: true Receiver's instance variables: outerContext: [ :manager | manager default currentSession addDeferredStartupA...etc... startpc: 83 numArgs: 0 WorkingSession>>executeDeferredStartupActions: Receiver: a WorkingSession Arguments and temporary variables: resuming: true action: [ self managedServers do: [ :each | each start ] ] Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2017-07-25T22:26:03.584862+02:00 WorkingSession>>runStartup: Receiver: a WorkingSession Arguments and temporary variables: isImageStarting: true Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2017-07-25T22:26:03.584862+02:00 WorkingSession>>start: Receiver: a WorkingSession Arguments and temporary variables: isImageStarting: true Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2017-07-25T22:26:03.584862+02:00 SessionManager>>snapshot:andQuit: Receiver: a SessionManager Arguments and temporary variables: save: true quit: false isImageStarting: true snapshotResult: true Receiver's instance variables: currentSession: a WorkingSession categories: an OrderedCollection(a SessionCategory(System) a SessionCategory(Ne...etc... guiCategory: a SessionCategory(Graphical User Interface) toolsCategory: a SessionCategory(Tools) networkCategory: a SessionCategory(Network) systemCategory: a SessionCategory(System) userCategory: a SessionCategory(User) [ ^ SessionManager default snapshot: save andQuit: quit ] in SmalltalkImage>>snapshot:andQuit: Receiver: Smalltalk Arguments and temporary variables: save: true quit: false 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 CurrentExecutionEnvironment class>>activate:for: Receiver: CurrentExecutionEnvironment Arguments and temporary variables: anExecutionEnvironment: a DefaultExecutionEnvironment aBlock: [ ^ SessionManager default snapshot: save andQuit: quit ] current: nil Receiver's instance variables: superclass: ProcessLocalVariable methodDict: a MethodDictionary(#default->CurrentExecutionEnvironment>>#default ...etc... format: 65537 layout: a FixedLayout instanceVariables: nil organization: a ClassOrganization subclasses: nil name: #CurrentExecutionEnvironment classPool: a Dictionary() sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'Kernel-Processes' traitComposition: {} localSelectors: nil soleInstance: a CurrentExecutionEnvironment DefaultExecutionEnvironment(ExecutionEnvironment)>>beActiveDuring: Receiver: a DefaultExecutionEnvironment Arguments and temporary variables: aBlock: [ ^ SessionManager default snapshot: save andQuit: quit ] Receiver's instance variables: a DefaultExecutionEnvironment DefaultExecutionEnvironment class>>beActiveDuring: Receiver: DefaultExecutionEnvironment Arguments and temporary variables: aBlock: [ ^ SessionManager default snapshot: save andQuit: quit ] Receiver's instance variables: superclass: ExecutionEnvironment methodDict: a MethodDictionary(#prepareForNewProcess:->DefaultExecutionEnvironm...etc... format: 0 layout: a FixedLayout instanceVariables: nil organization: a ClassOrganization subclasses: nil name: #DefaultExecutionEnvironment classPool: a Dictionary() sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'Kernel-Processes' traitComposition: {} localSelectors: nil instance: a DefaultExecutionEnvironment SmalltalkImage>>snapshot:andQuit: Receiver: Smalltalk Arguments and temporary variables: save: true quit: false 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 SmalltalkImage>>saveImageInFileNamed: Receiver: Smalltalk Arguments and temporary variables: aFile: 'D:\Herby\Work\cinegames\towergame-backend\work.image' imageFile: File @ D:\Herby\Work\cinegames\towergame-backend\work.image 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 SmalltalkImage>>saveAs: Receiver: Smalltalk Arguments and temporary variables: newNameWithoutSuffix: 'work' 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 SaveCommandLineHandler>>saveImage Receiver: a SaveCommandLineHandler Arguments and temporary variables: imageName: 'work' oldImageFile: File @ D:\Herby\Work\cinegames\towergame-backend\base.image oldChangesFile: File @ D:\Herby\Work\cinegames\towergame-backend\base.changes Receiver's instance variables: commandLine: a CommandLineArguments session: a WorkingSession stdout: a VTermOutputDriver stderr: a VTermOutputDriver SaveCommandLineHandler>>activate Receiver: a SaveCommandLineHandler Arguments and temporary variables: Receiver's instance variables: commandLine: a CommandLineArguments session: a WorkingSession stdout: a VTermOutputDriver stderr: a VTermOutputDriver SaveCommandLineHandler class(CommandLineHandler class)>>activateWith: Receiver: SaveCommandLineHandler Arguments and temporary variables: aCommandLine: a CommandLineArguments Receiver's instance variables: superclass: CommandLineHandler methodDict: a MethodDictionary(#activate->SaveCommandLineHandler>>#activate #sa...etc... format: 65540 layout: a FixedLayout instanceVariables: nil organization: a ClassOrganization subclasses: nil name: #SaveCommandLineHandler classPool: a Dictionary() sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'System-BasicCommandLineHandler' traitComposition: {} localSelectors: nil [ aCommandLinehandler activateWith: commandLine ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: Receiver: a PharoCommandLineHandler Arguments and temporary variables: aCommandLinehandler: SaveCommandLineHandler 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: SaveCommandLineHandler 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(SaveCommandLineHandler) 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: 'save' 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: nil 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 SaveCommandLineHandler) Receiver's instance variables: commandLine: a CommandLineArguments session: a WorkingSession stdout: a VTermOutputDriver stderr: a VTermOutputDriver --- The full stack --- ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>stop: ZnManagingMultiThreadedServer>>stop: ZnManagingMultiThreadedServer(ZnServer)>>stop ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>start [ :each | each start ] in THERE_BE_DRAGONS_HERE Error: stop: true was sent to running server! 25 July 2017 10:29:50.172455 pm VM: Win32 - IX86 - 10.0 - CoInterpreter VMMaker.oscog-eem.2254 uuid: 4f2c2cce-f4a2-469a-93f1-97ed941df0ad Jul 20 2017 StackToRegisterMappingCogit VMMaker.oscog-eem.2252 uuid: 2f3e9b0e-ecd3-4adf-b092-cce2e2587a5c Jul 20 2017 VM: 201707201942 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date: Thu Jul 20 12:42:21 2017 -0700 $ Plugins: 201707201942 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Image: Pharo6.0 [Latest update: #60510] ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>stop: Receiver: a ZnManagingMultiThreadedServer(running 4998) Arguments and temporary variables: unregister: true Receiver's instance variables: options: a Dictionary(#delegate->a TowergameDelegate #port->4998 ) sessionManager: nil process: a Process in [ self schedule. "It is critical that the following has n...etc... serverSocket: a Socket[waitingForConnection] logLevel: 3 lock: nil connections: an OrderedCollection() ZnManagingMultiThreadedServer>>stop: Receiver: a ZnManagingMultiThreadedServer(running 4998) Arguments and temporary variables: unregister: true Receiver's instance variables: options: a Dictionary(#delegate->a TowergameDelegate #port->4998 ) sessionManager: nil process: a Process in [ self schedule. "It is critical that the following has n...etc... serverSocket: a Socket[waitingForConnection] logLevel: 3 lock: nil connections: an OrderedCollection() ZnManagingMultiThreadedServer(ZnServer)>>stop Receiver: a ZnManagingMultiThreadedServer(running 4998) Arguments and temporary variables: Receiver's instance variables: options: a Dictionary(#delegate->a TowergameDelegate #port->4998 ) sessionManager: nil process: a Process in [ self schedule. "It is critical that the following has n...etc... serverSocket: a Socket[waitingForConnection] logLevel: 3 lock: nil connections: an OrderedCollection() ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>start Receiver: a ZnManagingMultiThreadedServer(running 4998) Arguments and temporary variables: Receiver's instance variables: options: a Dictionary(#delegate->a TowergameDelegate #port->4998 ) sessionManager: nil process: a Process in [ self schedule. "It is critical that the following has n...etc... serverSocket: a Socket[waitingForConnection] logLevel: 3 lock: nil connections: an OrderedCollection() [ :each | each start ] in [ self managedServers do: [ :each | each start ] ] in [ :manager | manager default currentSession addDeferredStartupAction: [ self managedServers do: [ :each | each start ] ] ] in ZnServer class>>startUp: Receiver: ZnServer Arguments and temporary variables: resuming: true manager: SessionManager each: a ZnManagingMultiThreadedServer(running 4998) Receiver's instance variables: superclass: Object methodDict: a MethodDictionary(#authenticator->ZnServer>>#authenticator #authen...etc... format: 65538 layout: a FixedLayout instanceVariables: nil organization: a ClassOrganization subclasses: {ZnSingleThreadedServer} name: #ZnServer classPool: a Dictionary(#AlwaysRestart->true #ManagedServers->an IdentitySet(a ...etc... sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'Zinc-HTTP-Client-Server' traitComposition: {} localSelectors: nil IdentitySet(Set)>>do: Receiver: an IdentitySet(a ZnManagingMultiThreadedServer(running 4998)) Arguments and temporary variables: aBlock: [ :each | each start ] index: 3 each: a ZnManagingMultiThreadedServer(running 4998) Receiver's instance variables: tally: 1 array: an Array(nil nil a ZnManagingMultiThreadedServer(running 4998) nil nil n...etc... [ self managedServers do: [ :each | each start ] ] in [ :manager | manager default currentSession addDeferredStartupAction: [ self managedServers do: [ :each | each start ] ] ] in ZnServer class>>startUp: Receiver: ZnServer Arguments and temporary variables: resuming: true manager: SessionManager Receiver's instance variables: superclass: Object methodDict: a MethodDictionary(#authenticator->ZnServer>>#authenticator #authen...etc... format: 65538 layout: a FixedLayout instanceVariables: nil organization: a ClassOrganization subclasses: {ZnSingleThreadedServer} name: #ZnServer classPool: a Dictionary(#AlwaysRestart->true #ManagedServers->an IdentitySet(a ...etc... sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'Zinc-HTTP-Client-Server' traitComposition: {} localSelectors: nil BlockClosure>>cull: Receiver: [ self managedServers do: [ :each | each start ] ] Arguments and temporary variables: anArg: true Receiver's instance variables: outerContext: [ :manager | manager default currentSession addDeferredStartupA...etc... startpc: 83 numArgs: 0 WorkingSession>>executeDeferredStartupActions: Receiver: a WorkingSession Arguments and temporary variables: resuming: true action: [ self managedServers do: [ :each | each start ] ] Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2017-07-25T22:26:03.584862+02:00 WorkingSession>>runStartup: Receiver: a WorkingSession Arguments and temporary variables: isImageStarting: true Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2017-07-25T22:26:03.584862+02:00 WorkingSession>>start: Receiver: a WorkingSession Arguments and temporary variables: isImageStarting: true Receiver's instance variables: manager: a SessionManager deferredStartupActions: an OrderedCollection() id: nil creationTime: 2017-07-25T22:26:03.584862+02:00 SessionManager>>snapshot:andQuit: Receiver: a SessionManager Arguments and temporary variables: save: true quit: false isImageStarting: true snapshotResult: true Receiver's instance variables: currentSession: a WorkingSession categories: an OrderedCollection(a SessionCategory(System) a SessionCategory(Ne...etc... guiCategory: a SessionCategory(Graphical User Interface) toolsCategory: a SessionCategory(Tools) networkCategory: a SessionCategory(Network) systemCategory: a SessionCategory(System) userCategory: a SessionCategory(User) [ ^ SessionManager default snapshot: save andQuit: quit ] in SmalltalkImage>>snapshot:andQuit: Receiver: Smalltalk Arguments and temporary variables: save: true quit: false 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 CurrentExecutionEnvironment class>>activate:for: Receiver: CurrentExecutionEnvironment Arguments and temporary variables: anExecutionEnvironment: a DefaultExecutionEnvironment aBlock: [ ^ SessionManager default snapshot: save andQuit: quit ] current: nil Receiver's instance variables: superclass: ProcessLocalVariable methodDict: a MethodDictionary(#default->CurrentExecutionEnvironment>>#default ...etc... format: 65537 layout: a FixedLayout instanceVariables: nil organization: a ClassOrganization subclasses: nil name: #CurrentExecutionEnvironment classPool: a Dictionary() sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'Kernel-Processes' traitComposition: {} localSelectors: nil soleInstance: a CurrentExecutionEnvironment DefaultExecutionEnvironment(ExecutionEnvironment)>>beActiveDuring: Receiver: a DefaultExecutionEnvironment Arguments and temporary variables: aBlock: [ ^ SessionManager default snapshot: save andQuit: quit ] Receiver's instance variables: a DefaultExecutionEnvironment DefaultExecutionEnvironment class>>beActiveDuring: Receiver: DefaultExecutionEnvironment Arguments and temporary variables: aBlock: [ ^ SessionManager default snapshot: save andQuit: quit ] Receiver's instance variables: superclass: ExecutionEnvironment methodDict: a MethodDictionary(#prepareForNewProcess:->DefaultExecutionEnvironm...etc... format: 0 layout: a FixedLayout instanceVariables: nil organization: a ClassOrganization subclasses: nil name: #DefaultExecutionEnvironment classPool: a Dictionary() sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'Kernel-Processes' traitComposition: {} localSelectors: nil instance: a DefaultExecutionEnvironment SmalltalkImage>>snapshot:andQuit: Receiver: Smalltalk Arguments and temporary variables: save: true quit: false 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 SmalltalkImage>>saveImageInFileNamed: Receiver: Smalltalk Arguments and temporary variables: aFile: 'D:\Herby\Work\cinegames\towergame-backend\work.image' imageFile: File @ D:\Herby\Work\cinegames\towergame-backend\work.image 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 SmalltalkImage>>saveAs: Receiver: Smalltalk Arguments and temporary variables: newNameWithoutSuffix: 'work' 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 SaveCommandLineHandler>>saveImage Receiver: a SaveCommandLineHandler Arguments and temporary variables: imageName: 'work' oldImageFile: File @ D:\Herby\Work\cinegames\towergame-backend\base.image oldChangesFile: File @ D:\Herby\Work\cinegames\towergame-backend\base.changes Receiver's instance variables: commandLine: a CommandLineArguments session: a WorkingSession stdout: a VTermOutputDriver stderr: a VTermOutputDriver SaveCommandLineHandler>>activate Receiver: a SaveCommandLineHandler Arguments and temporary variables: Receiver's instance variables: commandLine: a CommandLineArguments session: a WorkingSession stdout: a VTermOutputDriver stderr: a VTermOutputDriver SaveCommandLineHandler class(CommandLineHandler class)>>activateWith: Receiver: SaveCommandLineHandler Arguments and temporary variables: aCommandLine: a CommandLineArguments Receiver's instance variables: superclass: CommandLineHandler methodDict: a MethodDictionary(#activate->SaveCommandLineHandler>>#activate #sa...etc... format: 65540 layout: a FixedLayout instanceVariables: nil organization: a ClassOrganization subclasses: nil name: #SaveCommandLineHandler classPool: a Dictionary() sharedPools: an OrderedCollection() environment: a SystemDictionary(lots of globals) category: #'System-BasicCommandLineHandler' traitComposition: {} localSelectors: nil [ aCommandLinehandler activateWith: commandLine ] in PharoCommandLineHandler(BasicCommandLineHandler)>>activateSubCommand: Receiver: a PharoCommandLineHandler Arguments and temporary variables: aCommandLinehandler: SaveCommandLineHandler 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: SaveCommandLineHandler 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(SaveCommandLineHandler) 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: 'save' 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: nil 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 SaveCommandLineHandler) Receiver's instance variables: commandLine: a CommandLineArguments session: a WorkingSession stdout: a VTermOutputDriver stderr: a VTermOutputDriver --- The full stack --- ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>stop: ZnManagingMultiThreadedServer>>stop: ZnManagingMultiThreadedServer(ZnServer)>>stop ZnManagingMultiThreadedServer(ZnSingleThreadedServer)>>start [ :each | each start ] in [ self managedServers do: [ :each | each start ] ] in [ :manager | manager default currentSession addDeferredStartupAction: [ self managedServers do: [ :each | each start ] ] ] in ZnServer class>>startUp: IdentitySet(Set)>>do: [ self managedServers do: [ :each | each start ] ] in [ :manager | manager default currentSession addDeferredStartupAction: [ self managedServers do: [ :each | each start ] ] ] in ZnServer class>>startUp: BlockClosure>>cull: WorkingSession>>executeDeferredStartupActions: WorkingSession>>runStartup: WorkingSession>>start: SessionManager>>snapshot:andQuit: [ ^ SessionManager default snapshot: save andQuit: quit ] in SmalltalkImage>>snapshot:andQuit: CurrentExecutionEnvironment class>>activate:for: DefaultExecutionEnvironment(ExecutionEnvironment)>>beActiveDuring: DefaultExecutionEnvironment class>>beActiveDuring: 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: [ ^ SessionManager default snapshot: save andQuit: quit ] in SmalltalkImage>>snapshot:andQuit: CurrentExecutionEnvironment class>>activate:for: DefaultExecutionEnvironment(ExecutionEnvironment)>>beActiveDuring: DefaultExecutionEnvironment class>>beActiveDuring: SmalltalkImage>>snapshot:andQuit: [ Smalltalk snapshot: true andQuit: true ] in WorldState class>>saveAndQuit BlockClosure>>ensure: CursorWithMask(Cursor)>>showWhile: WorldState class>>saveAndQuit [ | selArgCount | "show cursor in case item opens a new MVC window" (selArgCount := selector numArgs) = 0 ifTrue: [ target perform: selector ] ifFalse: [ selArgCount = arguments size ifTrue: [ target perform: selector withArguments: arguments ] ifFalse: [ target perform: selector withArguments: (arguments copyWith: evt) ]. self showShortcut ]. self changed ] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent: BlockClosure>>ensure: CursorWithMask(Cursor)>>showWhile: ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent: ToggleMenuItemMorph(MenuItemMorph)>>mouseUp: ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp: MouseButtonEvent>>sentTo: ToggleMenuItemMorph(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>handleMouseUp: MouseButtonEvent>>sentTo: [ ^ anEvent sentTo: self ] in MorphicEventDispatcher>>dispatchEvent:with: BlockClosure>>ensure: MorphicEventDispatcher>>dispatchEvent:with: ToggleMenuItemMorph(Morph)>>processEvent:using: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>handleMouseUp: MouseButtonEvent>>sentTo: [ ^ anEvent sentTo: self ] in MorphicEventDispatcher>>dispatchEvent:with: BlockClosure>>ensure: MorphicEventDispatcher>>dispatchEvent:with: MenuMorph(Morph)>>processEvent:using: MenuMorph(Morph)>>processEvent: MenuMorph>>handleFocusEvent: [ ActiveHand := self. ActiveEvent := anEvent. result := focusHolder handleFocusEvent: (anEvent transformedBy: (focusHolder transformedFrom: self)) ] in HandMorph>>sendFocusEvent:to:clear: BlockClosure>>on:do: WorldMorph(PasteUpMorph)>>becomeActiveDuring: HandMorph>>sendFocusEvent:to:clear: HandMorph>>sendEvent:focus:clear: HandMorph>>sendMouseEvent: HandMorph>>handleEvent: HandMorph>>processEventsFromQueue: HandMorph>>processEvents [ :h | self activeHand: h. h processEvents. self activeHand: nil ] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: WorldMorph>>doOneCycle WorldMorph class>>doOneCycle [ [ WorldMorph doOneCycle. Processor yield. false ] whileFalse: [ ] ] in MorphicUIManager>>spawnNewProcess [ self value. Processor terminateActive ] in BlockClosure>>newProcess -------------------------------------------------------------------------------