[squeak-dev] I broke the debugger?

tim Rowledge tim at rowledge.org
Mon Jan 27 05:11:43 UTC 2020


Weird thing her. I was trying out my old Plumbing example, mostly just as a way to improve the swiki page. Using a 19292 update 5.3 image on Mac.

Found a recursion related bug in the behaviour when there are two faucets. Toggled the break on entry, triggered the recursion. Went to step over the #break and.... whoosh, boom. Some very weird behaviour that is not at all what I'd expect. I also tried stepping into the #break to see if that might show me sometihng but that wasn't any better at all.

Tested in a 198229 image and no problem. Someone done borked it.

The best I could capture any log is - 

----------------------------------
Error: subscript is out of bounds: 0
26 January 2020 8:59:18.032815 pm

VM: Mac OS - Smalltalk
Image: Squeak5.3beta [latest update: #19292]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/tim/Documents/Squeak
Trusted Dir /Users/tim/Documents/Squeak/secure
Untrusted Dir /Users/tim/Documents/Squeak/My Squeak

Context(Object)>>error:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		aString: 	'subscript is out of bounds: 0'
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context(Object)>>errorSubscriptBounds:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)

Context>>at:
	Receiver: FaucetPlumbinTileMorph(Object)>>break
	Arguments and temporary variables: 
		index: 	0
	Receiver's instance variables: 
		sender: 	BlockClosure>>on:do:
		pc: 	44
		stackp: 	0
		method: 	(Object>>#break "a CompiledMethod(2334054)")
		closureOrNil: 	nil
		receiver: 	a FaucetPlumbinTileMorph(1038220)


--- The full stack ---
Context(Object)>>error:
Context(Object)>>errorSubscriptBounds:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:
Context>>at:


tim
--
tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
You never really learn to swear until you learn to drive in Silicon Valley




More information about the Squeak-dev mailing list