[BUG]BlockClosures

cmuller at kc.rr.com cmuller at kc.rr.com
Wed Jan 30 23:29:03 UTC 2002


A possible bug w/ the BlockClosures.  When attempting to select a frame
in the intro-debugger CompiledMethod2>>sourceRange attempts to send
#subsectionRange to the variable "trailer", which is apparently supposed
to be a String but in this case it is an Interval (41 to: 131).

I think it is attempting to select text in the text pane of the
debugger.  In Debugger>>#pcRange, a couple of frames back, it has the
following code:

	self selectedContext isBlockContext ifTrue: [
		methodNode _ methodNode blockNodeFor: self selectedContext method].

I *did* select a block-closure stack frame (e.g., it begins with "[...]
from MyClass>>myMethod...").

Is this a bug?

thanks..



30 January 2002 5:20:05 pm

VM: Win32 - Squeak3.2alpha of 17 December 2001 [latest update: #4614]
Image: Squeak3.2BCalpha [latest update: #4653]

MessageNotUnderstood(Exception)>>signal
	Receiver: Interval subsectionRange?
	Arguments and temporary variables: 

	Receiver's instance variables: 
		messageText: 	nil
		initialContext: 	MessageNotUnderstood(Exception)>>signal
		resignalException: 	nil
		handlerContext: 	nil
		tag: 	nil
		disabledHandlers: 	#()
		message: 	subsectionRange
		receiver: 	(41 to: 131)

Interval(Object)>>doesNotUnderstand:
	Receiver: (41 to: 131)
	Arguments and temporary variables: 
		aMessage: 	subsectionRange
	Receiver's instance variables: 
		start: 	41
		stop: 	131
		step: 	1

CompiledMethod2>>sourceRange
	Receiver: a CompiledMethod2 (3065)
	Arguments and temporary variables: 

	Receiver's instance variables: 
		header: 	2048
		bytecodes: 	a ByteArray(3 47 50 159 5 47 202 1 110 223)
		trailer: 	(41 to: 131)

MethodNode2>>blockNodeFor:
	Receiver: ERROR
	"getting sourceCode: BlockClosure class errorNoDecompilerYet?"
	^ self
	Arguments and temporary variables: 
		blockCompiledMethod: 	a CompiledMethod2 (3065)
	Receiver's instance variables: 
		comment: 	nil
		selectorOrFalse: 	#ERROR
		block: 	{[^ self]}
		primitive: 	{primitive 0}

--- The rest of the stack ---
Debugger>>pcRange
Debugger>>contextStackIndex:oldContextWas:
Debugger>>toggleContextStackIndex:
Debugger>>debugAt:
PluggableListMorph>>changeModelSelection:
PluggableListMorph>>setSelectedMorph:
PluggableListMorph>>mouseUp:
PluggableListMorph(Morph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
PluggableListMorph(Morph)>>handleEvent:
PluggableListMorph(Morph)>>handleFocusEvent:
[...] from HandMorph>>sendFocusEvent:to:clear:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[...] from WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[...]



More information about the Squeak-dev mailing list