When I use | context process | context := [ 20 factorial ] asContext.
process := Process forContext: context priority: Processor userInterruptPriority. [ debugger := Smalltalk tools debugger new process: process controller: nil context: context. debugger stack expand. ] ifCurtailed: [ process terminate] I do not get any extra process hanging around. now if I do | context process | context := [ 20 factorial ] asContext. process := Process forContext: context priority: Processor userInterruptPriority. [ debugger := Smalltalk tools debugger new process: process controller: nil context: context. debugger stack expand. Transcript show: debugger stack selectedIndex ] ifCurtailed: [ process terminate] But then when I do | context process debuggerg | context := [ 20 factorial ] asContext. process := Process forContext: context priority: Processor userInterruptPriority. [ debugger := Smalltalk tools debugger new process: process controller: nil context: context. debugger stack expand. Transcript show: debugger stack selectedIndex; cr. ] ensure: [ process terminate] I get processes stuck trying to open the log fiel ro something like that. Now I do not understand because when I ask the setter to stack (to get what is set in this variable) the system tells me that there is no store. Stef On 03 Apr 2014, at 20:49, Pharo4Stef <pharo4s...@free.fr> wrote: > > even using ensure: to make sure that the process is terminated it is not > really working. > I have the impression that there is a problem and that the tests does not > really finishes but this is really difficult to debug. > >> Hi guys >> >> I need your brain cells. >> >> When I execute the test >> >> testBasic >> | context process debugger printedString | >> context := [ 20 factorial ] asContext. >> >> process := Process >> forContext: context >> priority: Processor userInterruptPriority. >> >> debugger := Smalltalk tools debugger new >> process: process >> controller: nil >> context: context. >> debugger stack expand. >> >> self assert: debugger stack selectedIndex = 1. >> printedString := OpalCompiler isActive >> ifTrue: [ '[ 20 factorial ] in DebuggerTest>>testBasic'] >> ifFalse: [ '[...] in DebuggerTest>>testBasic' ]. >> self assert: debugger stack selectedItem printString = printedString. >> >> debugger send. >> debugger send. >> self assert: debugger code getText = (Integer>>#factorial) sourceCode. >> self assert: debugger stack selectedItem printString = >> 'SmallInteger(Integer)>>factorial'. >> >> two times my image (latest get totally unusable). >> I thought that may be the process should be terminated >> so I added >> >> process terminate >> >> But nothing changes. I tried to debug the code but not chance. >> I tried self halt after [ 20 factorial ] asContext. >> >> I tried to execute the beginning in a workspace and not as a test to >> eliminate problem. >> But again no chance. >> >> >> So did I miss something obvious? >> >> Stef >> >> >> >> >> > >