[squeak-dev] [Bug][5.2beta][Test] menu 'method source with it' causes error in DecompilerConstructor object

H. Hirzel hannes.hirzel at gmail.com
Fri Sep 7 06:44:43 UTC 2018


Hello

A manual test case which fails:

1) I open a workspace
2) I add and select the text
      previous project
3) I choose the menu 'method source with it'

Result is that I get an error in

DecompilerConstructor>>
codeMethod: selector block: block tempVars: vars primitive: primitive
class: class


Stack trace below

--Hannes

--------------------------------------------------------------------------------------------------------------------------------------
7 September 2018 8:40:44.650159 am

VM: unix - Smalltalk
Image: Squeak5.2alpha [latest update: #18185]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/user24/Documents/Squeak5.2/Squeak5.2alpha-18185-32bit-All-in-One.app/Contents/Resources
Trusted Dir /home/user24/Documents/Squeak5.2/Squeak5.2alpha-18185-32bit-All-in-One.app/Contents/Resources/secure
Untrusted Dir /home/user24/Documents/Squeak5.2/Squeak5.2alpha-18185-32bit-All-in-One.app/Contents/Resources/My
Squeak

UndefinedObject(Object)>>doesNotUnderstand: #precedence
	Receiver: nil
	Arguments and temporary variables:
		aMessage: 	precedence
		exception: 	MessageNotUnderstood: UndefinedObject>>precedence
		resumeValue: 	nil
	Receiver's instance variables:
nil

DecompilerConstructor>>codeMethod:block:tempVars:primitive:class:
	Receiver: {a DecompilerConstructor}
	Arguments and temporary variables:
		selector: 	nil
		block: 	{[[] repeat.
	self getValueAtCursor doMenuItem: 'resist being picked up'...etc...
		vars: 	#()
		primitive: 	0
		class: 	Player217
		blockNode: 	nil
		selectorNode: 	{<key==nil>}
		visibleTemps: 	an OrderedCollection()
		invisibleTemps: 	an OrderedCollection()
		arguments: 	an OrderedCollection()
		temporaries: 	an OrderedCollection()
		properties: 	an AdditionalMethodState (1209644)
		onceCache: 	nil
	Receiver's instance variables:
		comment: 	nil
		pc: 	nil
		method: 	(Player217>>nil "a CompiledMethod(1568738)")
		instVars: 	#('dependents' 'costume' 'costumes')
		nArgs: 	0
		literalValues: 	{#timesRepeat: . #getCount . #doMenuItem: .
#getValueAtCursor . ...etc...
		tempVars: 	#()

Decompiler>>decompile:in:method:using:
	Receiver: a Decompiler
	Arguments and temporary variables:
		aSelector: 	nil
		aClass: 	Player217
		aMethod: 	(Player217>>nil "a CompiledMethod(1568738)")
		aConstructor: 	{a DecompilerConstructor}
		block: 	{[[] repeat.
	self getValueAtCursor doMenuItem: 'resist being picked up'...etc...
		node: 	nil
	Receiver's instance variables:
		sender: 	(Player217>>nil "a CompiledMethod(1568738)")
		pc: 	63
		constructor: 	{a DecompilerConstructor}
		method: 	(Player217>>nil "a CompiledMethod(1568738)")
		instVars: 	#(nil nil nil)
		tempVars: 	#()
		constTable: 	{{self} . {true} . {false} . {nil} . {-1} . {0} . {1} . {2}}
		stack: 	an OrderedCollection()
		statements: 	an OrderedCollection()
		lastPc: 	62
		exit: 	63
		caseExits: 	an OrderedCollection()
		lastJumpPc: 	62
		lastReturnPc: 	-1
		limit: 	63
		hasValue: 	false
		blockStackBase: 	nil
		numLocalTemps: 	0
		blockStartsToTempVars: 	nil
		tempVarCount: 	0
		lastJumpIfPcStack: 	an OrderedCollection()
		tempReadCounts: 	a Dictionary()

Decompiler>>decompile:in:method:
	Receiver: a Decompiler
	Arguments and temporary variables:
		aSelector: 	nil
		aClass: 	Player217
		aMethod: 	(Player217>>nil "a CompiledMethod(1568738)")
	Receiver's instance variables:
		sender: 	(Player217>>nil "a CompiledMethod(1568738)")
		pc: 	63
		constructor: 	{a DecompilerConstructor}
		method: 	(Player217>>nil "a CompiledMethod(1568738)")
		instVars: 	#(nil nil nil)
		tempVars: 	#()
		constTable: 	{{self} . {true} . {false} . {nil} . {-1} . {0} . {1} . {2}}
		stack: 	an OrderedCollection()
		statements: 	an OrderedCollection()
		lastPc: 	62
		exit: 	63
		caseExits: 	an OrderedCollection()
		lastJumpPc: 	62
		lastReturnPc: 	-1
		limit: 	63
		hasValue: 	false
		blockStackBase: 	nil
		numLocalTemps: 	0
		blockStartsToTempVars: 	nil
		tempVarCount: 	0
		lastJumpIfPcStack: 	an OrderedCollection()
		tempReadCounts: 	a Dictionary()

CompiledMethod>>getSourceFor:in:
	Receiver: (Player217>>nil "a CompiledMethod(1568738)")
	Arguments and temporary variables:
		selector: 	nil
		class: 	Player217
		trailer: 	a CompiledMethodTrailer
		source: 	nil
		namesString: 	nil
		code: 	nil
	Receiver's instance variables:
(Player217>>nil "a CompiledMethod(1568738)")

CompiledMethod(CompiledCode)>>getSource
	Receiver: (Player217>>nil "a CompiledMethod(1568738)")
	Arguments and temporary variables:

	Receiver's instance variables:
(Player217>>nil "a CompiledMethod(1568738)")

[] in [] in [] in SystemNavigation>>allMethodsWithSourceString:matchCase:
	Receiver: a SystemNavigation
	Arguments and temporary variables:
<<error during printing>
	Receiver's instance variables:
		browserClass: 	nil
		hierarchyBrowserClass: 	nil
		environment: 	Smalltalk

[] in [] in SystemNavigation>>allSelectorsAndMethodsDo:
	Receiver: a SystemNavigation
	Arguments and temporary variables:
		aBlock: 	#script1
		behavior: 	(Player217>>nil "a CompiledMethod(1568738)")
		selector: 	Player217
		method: 	[closure] in [] in [] in
SystemNavigation>>allMethodsWithSourceString:matchCase:...etc...
	Receiver's instance variables:
		browserClass: 	nil
		hierarchyBrowserClass: 	nil
		environment: 	Smalltalk

MethodDictionary>>keysAndValuesDo:
	Receiver: a MethodDictionary(#script1->(Player217>>nil "a
CompiledMethod(1568738)") )
	Arguments and temporary variables:
		aBlock: 	[closure] in [] in SystemNavigation>>allSelectorsAndMethodsDo:
		key: 	#script1
		i: 	8
		iLimiT: 	32
	Receiver's instance variables:
		tally: 	1
		array: 	{nil . nil . nil . nil . nil . nil . nil . (Player217>>nil
"a CompiledMethod...etc...

Player217 class(Behavior)>>selectorsAndMethodsDo:
	Receiver: Player217
	Arguments and temporary variables:
		selectorAndMethodBlock: 	[closure] in [] in
SystemNavigation>>allSelectorsAndMethodsDo:...etc...
	Receiver's instance variables:
		superclass: 	Player
		methodDict: 	a MethodDictionary(#script1->(Player217>>nil "a
CompiledMethod(1568...etc...
		format: 	65539
		instanceVariables: 	nil
		organization: 	('scripts' script1)

		subclasses: 	nil
		name: 	#Player217
		classPool: 	nil
		sharedPools: 	nil
		environment: 	Smalltalk
		category: 	#UserObjects
		scripts: 	an IdentityDictionary(#script1->A UniclassScript -
selector: #script1 ...etc...
		slotInfo: 	an IdentityDictionary()
		variableDocks: 	<<error during printing>>

[] in SystemNavigation>>allSelectorsAndMethodsDo:
	Receiver: a SystemNavigation
	Arguments and temporary variables:
		aBlock: 	Player217
		behavior: 	[closure] in [] in [] in
SystemNavigation>>allMethodsWithSourceString:matchCase:...etc...
	Receiver's instance variables:
		browserClass: 	nil
		hierarchyBrowserClass: 	nil
		environment: 	Smalltalk

[] in SystemNavigation>>allBehaviorsDo:
	Receiver: a SystemNavigation
	Arguments and temporary variables:
		aBlock: 	Player217
		class: 	[closure] in SystemNavigation>>allSelectorsAndMethodsDo:
	Receiver's instance variables:
		browserClass: 	nil
		hierarchyBrowserClass: 	nil
		environment: 	Smalltalk

[] in Environment>>allClassesAndTraitsDo:
	Receiver: Smalltalk
	Arguments and temporary variables:
		aBlock: 	#Player217
		key: 	Player217
		value: 	[closure] in SystemNavigation>>allBehaviorsDo:
	Receiver's instance variables:
		info: 	SmalltalkInfo
		declarations: 	an IdentityDictionary(size 2732)
		bindings: 	an IdentityDictionary(size 2732)
		undeclared: 	a WeakIdentityDictionary()
		policies: 	{a BindingPolicy . a BindingPolicy}
		observers: 	an IdentitySet(EnvironmentForUniClass)

[] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
	Receiver: an IdentityDictionary(size 2732)
	Arguments and temporary variables:
		aBlock: 	#Player217=>Player217
		assoc: 	[closure] in Environment>>allClassesAndTraitsDo:
	Receiver's instance variables:
		tally: 	2732
		array: 	{#ConnectionClosed=>ConnectionClosed .
#UTF8TextConverterTest=>UTF8TextConverterTest...etc...

IdentityDictionary(Dictionary)>>associationsDo:
	Receiver: an IdentityDictionary(size 2732)
	Arguments and temporary variables:
		aBlock: 	[closure] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
		element: 	#Player217=>Player217
		index: 	2628
		indexLimiT: 	3727
	Receiver's instance variables:
		tally: 	2732
		array: 	{#ConnectionClosed=>ConnectionClosed .
#UTF8TextConverterTest=>UTF8TextConverterTest...etc...

IdentityDictionary(Dictionary)>>keysAndValuesDo:
	Receiver: an IdentityDictionary(size 2732)
	Arguments and temporary variables:
		aBlock: 	[closure] in Environment>>allClassesAndTraitsDo:
	Receiver's instance variables:
		tally: 	2732
		array: 	{#ConnectionClosed=>ConnectionClosed .
#UTF8TextConverterTest=>UTF8TextConverterTest...etc...

Environment>>allClassesAndTraitsDo:
	Receiver: Smalltalk
	Arguments and temporary variables:
		aBlock: 	[closure] in SystemNavigation>>allBehaviorsDo:
	Receiver's instance variables:
		info: 	SmalltalkInfo
		declarations: 	an IdentityDictionary(size 2732)
		bindings: 	an IdentityDictionary(size 2732)
		undeclared: 	a WeakIdentityDictionary()
		policies: 	{a BindingPolicy . a BindingPolicy}
		observers: 	an IdentitySet(EnvironmentForUniClass)

SystemNavigation>>allBehaviorsDo:
	Receiver: a SystemNavigation
	Arguments and temporary variables:
		aBlock: 	[closure] in SystemNavigation>>allSelectorsAndMethodsDo:
	Receiver's instance variables:
		browserClass: 	nil
		hierarchyBrowserClass: 	nil
		environment: 	Smalltalk

SystemNavigation>>allSelectorsAndMethodsDo:
	Receiver: a SystemNavigation
	Arguments and temporary variables:
		aBlock: 	[closure] in [] in [] in
SystemNavigation>>allMethodsWithSourceString:matchCase:...etc...
	Receiver's instance variables:
		browserClass: 	nil
		hierarchyBrowserClass: 	nil
		environment: 	Smalltalk


--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #precedence
DecompilerConstructor>>codeMethod:block:tempVars:primitive:class:
Decompiler>>decompile:in:method:using:
Decompiler>>decompile:in:method:
CompiledMethod>>getSourceFor:in:
CompiledMethod(CompiledCode)>>getSource
[] in [] in [] in SystemNavigation>>allMethodsWithSourceString:matchCase:
[] in [] in SystemNavigation>>allSelectorsAndMethodsDo:
MethodDictionary>>keysAndValuesDo:
Player217 class(Behavior)>>selectorsAndMethodsDo:
[] in SystemNavigation>>allSelectorsAndMethodsDo:
[] in SystemNavigation>>allBehaviorsDo:
[] in Environment>>allClassesAndTraitsDo:
[] in IdentityDictionary(Dictionary)>>keysAndValuesDo:
IdentityDictionary(Dictionary)>>associationsDo:
IdentityDictionary(Dictionary)>>keysAndValuesDo:
Environment>>allClassesAndTraitsDo:
SystemNavigation>>allBehaviorsDo:
SystemNavigation>>allSelectorsAndMethodsDo:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[] in [] in SystemNavigation>>allMethodsWithSourceString:matchCase:
[] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
BlockClosure>>on:do:
[] in MorphicUIManager>>displayProgress:at:from:to:during:
BlockClosure>>ensure:
MorphicUIManager>>displayProgress:at:from:to:during:
ProgressInitiationException>>defaultResumeValue
ProgressInitiationException(Exception)>>resume
ProgressInitiationException>>defaultAction
UndefinedObject>>handleSignal:
Context>>handleSignal:
ProgressInitiationException(Exception)>>signal
ProgressInitiationException>>display:at:from:to:during:
ProgressInitiationException class>>display:at:from:to:during:
ByteString(String)>>displayProgressAt:from:to:during:
ByteString(String)>>displayProgressFrom:to:during:
[] in SystemNavigation>>allMethodsWithSourceString:matchCase:
BlockClosure>>on:do:
CurrentReadOnlySourceFiles class>>cacheDuring:
SystemNavigation>>allMethodsWithSourceString:matchCase:
SystemNavigation>>browseMethodsWithSourceString:
SmalltalkEditor(TextEditor)>>methodSourceContainingIt
[] in PluggableTextMorphPlus(PluggableTextMorph)>>methodSourceContainingIt
TextMorphForEditView(TextMorph)>>handleEdit:
PluggableTextMorphPlus(PluggableTextMorph)>>handleEdit:
PluggableTextMorphPlus(PluggableTextMorph)>>methodSourceContainingIt
Workspace(StringHolder)>>perform:orSendTo:
[] in MenuItemMorph>>invokeWithEvent:
BlockClosure>>ensure:
CursorWithMask(Cursor)>>showWhile:
MenuItemMorph>>invokeWithEvent:
MenuItemMorph>>mouseUp:
MenuItemMorph>>handleMouseUp:
MouseButtonEvent>>sentTo:
MenuItemMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuItemMorph(Morph)>>processEvent:using:
[] in MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:
Array(SequenceableCollection)>>do:
MenuMorph(Morph)>>submorphsDo:
-- and more not shown --


More information about the Squeak-dev mailing list