Status: Accepted
Owner: [email protected]
Labels: Type-ReportDefect Milestone-1.2
New issue 3763 by [email protected]: assert failure during
Decompiler>>popIntoTemporaryVariable:
http://code.google.com/p/pharo/issues/detail?id=3763
If you fill an issue for the first time, please read "How to report bugs"
at http://www.pharo-project.org/community/issue-tracking
Pharo image: dev
Pharo core version: Pharo1.2rc2Latest update: #12338
Virtual machine used: Squeak 4.2.5beta1U (Mac)
-----------------------
using a fresh image load MetacelloBrowser:
Gofer new
squeaksource: 'MetacelloBrowser';
package: 'ConfigurationOfMetacelloBrowser';
load.
((Smalltalk at: #ConfigurationOfMetacelloBrowser) project version:
#development) load.
Create a directory repository and save a new version of
ConfigurationOfPharoSound into the directory repository....save a copy of
the image.
Then open the MetacelloBrowser:
MetacelloBrowser open
You will get a cascade of Assert debuggers ... not sure what is actually
triggering the problem since the debugger is failing to open. Here's the
stack from the debug log:
THERE_BE_DRAGONS_HERE
AssertionFailure: Assertion failed
26 February 2011 8:52:51 am
VM: Mac OS - intel - 1066 - Squeak4.1 of 17 April 2010 [latest update:
#9957] Squeak VM 4.2.5b1
Image: Pharo1.2rc2 [Latest update: #12338]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/dhenrich/Pharo/Pharo-1.2
Trusted Dir /foobar/tooBar/forSqueak/bogus
Untrusted Dir /Users/dhenrich/Library/Preferences/Squeak/Internet/My Squeak
BlockClosure>>assert
Receiver: [(tempVector := tempVars
at: offset + 1
ifAbsent: [ParseNode basicNew]) isTemp
...etc...
Arguments and temporary variables:
Receiver's instance variables:
outerContext: Decompiler>>popIntoTemporaryVariable:
startpc: 137
numArgs: 0
Decompiler>>popIntoTemporaryVariable:
Receiver: a Decompiler
Arguments and temporary variables:
offset: 6
maybeTVTag: #pushNewArray->#(nil)
start: nil
i: nil
iLimiT: nil
tempVector: an Array({a ParseNode})
Receiver's instance variables:
sender: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
pc: 82
constructor: {a DecompilerConstructorForClosures}
method: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
instVars: #(nil nil nil nil nil nil nil nil nil nil nil)
tempVars: an Array({required} {packageMap} {reqd}
{allReqd} {map} {_r6})
constTable: an Array({self} {true} {false} {nil} {-1} {0}
{1} {2})
stack: an OrderedCollection(#pushNewArray->#(nil))
statements: an OrderedCollection({reqd := required copy} {allReqd := Set
new} {...etc...
lastPc: 81
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 140
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: a Dictionary(65->an Array({required} {packageMap}
{reqd}...etc...
tempVarCount: 7
Decompiler(InstructionStream)>>interpretNextInstructionFor:
Receiver: a Decompiler
Arguments and temporary variables:
client: a Decompiler
byte: 110
type: 6
offset: 14
method: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
Receiver's instance variables:
sender: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
pc: 82
constructor: {a DecompilerConstructorForClosures}
method: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
instVars: #(nil nil nil nil nil nil nil nil nil nil nil)
tempVars: an Array({required} {packageMap} {reqd}
{allReqd} {map} {_r6})
constTable: an Array({self} {true} {false} {nil} {-1} {0}
{1} {2})
stack: an OrderedCollection(#pushNewArray->#(nil))
statements: an OrderedCollection({reqd := required copy} {allReqd := Set
new} {...etc...
lastPc: 81
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 140
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: a Dictionary(65->an Array({required} {packageMap}
{reqd}...etc...
tempVarCount: 7
Decompiler>>interpretNextInstructionFor:
Receiver: a Decompiler
Arguments and temporary variables:
client: a Decompiler
code: nil
varNames: nil
i: nil
iLimiT: nil
Receiver's instance variables:
sender: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
pc: 82
constructor: {a DecompilerConstructorForClosures}
method: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
instVars: #(nil nil nil nil nil nil nil nil nil nil nil)
tempVars: an Array({required} {packageMap} {reqd}
{allReqd} {map} {_r6})
constTable: an Array({self} {true} {false} {nil} {-1} {0}
{1} {2})
stack: an OrderedCollection(#pushNewArray->#(nil))
statements: an OrderedCollection({reqd := required copy} {allReqd := Set
new} {...etc...
lastPc: 81
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 140
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: a Dictionary(65->an Array({required} {packageMap}
{reqd}...etc...
tempVarCount: 7
Decompiler>>statementsTo:
Receiver: a Decompiler
Arguments and temporary variables:
end: 140
blockPos: 3
stackPos: 0
t: nil
Receiver's instance variables:
sender: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
pc: 82
constructor: {a DecompilerConstructorForClosures}
method: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
instVars: #(nil nil nil nil nil nil nil nil nil nil nil)
tempVars: an Array({required} {packageMap} {reqd}
{allReqd} {map} {_r6})
constTable: an Array({self} {true} {false} {nil} {-1} {0}
{1} {2})
stack: an OrderedCollection(#pushNewArray->#(nil))
statements: an OrderedCollection({reqd := required copy} {allReqd := Set
new} {...etc...
lastPc: 81
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 140
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: a Dictionary(65->an Array({required} {packageMap}
{reqd}...etc...
tempVarCount: 7
Decompiler>>blockTo:
Receiver: a Decompiler
Arguments and temporary variables:
end: 140
exprs: nil
block: nil
oldBase: 0
Receiver's instance variables:
sender: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
pc: 82
constructor: {a DecompilerConstructorForClosures}
method: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
instVars: #(nil nil nil nil nil nil nil nil nil nil nil)
tempVars: an Array({required} {packageMap} {reqd}
{allReqd} {map} {_r6})
constTable: an Array({self} {true} {false} {nil} {-1} {0}
{1} {2})
stack: an OrderedCollection(#pushNewArray->#(nil))
statements: an OrderedCollection({reqd := required copy} {allReqd := Set
new} {...etc...
lastPc: 81
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 140
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: a Dictionary(65->an Array({required} {packageMap}
{reqd}...etc...
tempVarCount: 7
Decompiler>>jump:if:
Receiver: a Decompiler
Arguments and temporary variables:
dist: 61
condition: true
savePc: 79
sign: true
elsePc: 77
elseStart: 140
end: 172
cond: nil
ifExpr: {reqd isEmpty}
thenBlock: nil
elseBlock: nil
thenJump: nil
elseJump: nil
condHasValue: nil
isIfNil: false
saveStack: an OrderedCollection()
blockBody: nil
elseDist: nil
Receiver's instance variables:
sender: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
pc: 82
constructor: {a DecompilerConstructorForClosures}
method: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
instVars: #(nil nil nil nil nil nil nil nil nil nil nil)
tempVars: an Array({required} {packageMap} {reqd}
{allReqd} {map} {_r6})
constTable: an Array({self} {true} {false} {nil} {-1} {0}
{1} {2})
stack: an OrderedCollection(#pushNewArray->#(nil))
statements: an OrderedCollection({reqd := required copy} {allReqd := Set
new} {...etc...
lastPc: 81
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 140
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: a Dictionary(65->an Array({required} {packageMap}
{reqd}...etc...
tempVarCount: 7
Decompiler(InstructionStream)>>interpretNextInstructionFor:
Receiver: a Decompiler
Arguments and temporary variables:
client: a Decompiler
byte: 61
type: 10
offset: 8
method: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
Receiver's instance variables:
sender: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
pc: 82
constructor: {a DecompilerConstructorForClosures}
method: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
instVars: #(nil nil nil nil nil nil nil nil nil nil nil)
tempVars: an Array({required} {packageMap} {reqd}
{allReqd} {map} {_r6})
constTable: an Array({self} {true} {false} {nil} {-1} {0}
{1} {2})
stack: an OrderedCollection(#pushNewArray->#(nil))
statements: an OrderedCollection({reqd := required copy} {allReqd := Set
new} {...etc...
lastPc: 81
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 140
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: a Dictionary(65->an Array({required} {packageMap}
{reqd}...etc...
tempVarCount: 7
Decompiler>>interpretNextInstructionFor:
Receiver: a Decompiler
Arguments and temporary variables:
client: a Decompiler
code: nil
varNames: nil
i: nil
iLimiT: nil
Receiver's instance variables:
sender: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
pc: 82
constructor: {a DecompilerConstructorForClosures}
method: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
instVars: #(nil nil nil nil nil nil nil nil nil nil nil)
tempVars: an Array({required} {packageMap} {reqd}
{allReqd} {map} {_r6})
constTable: an Array({self} {true} {false} {nil} {-1} {0}
{1} {2})
stack: an OrderedCollection(#pushNewArray->#(nil))
statements: an OrderedCollection({reqd := required copy} {allReqd := Set
new} {...etc...
lastPc: 81
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 140
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: a Dictionary(65->an Array({required} {packageMap}
{reqd}...etc...
tempVarCount: 7
Decompiler>>statementsTo:
Receiver: a Decompiler
Arguments and temporary variables:
end: 172
blockPos: 0
stackPos: 0
t: nil
Receiver's instance variables:
sender: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
pc: 82
constructor: {a DecompilerConstructorForClosures}
method: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
instVars: #(nil nil nil nil nil nil nil nil nil nil nil)
tempVars: an Array({required} {packageMap} {reqd}
{allReqd} {map} {_r6})
constTable: an Array({self} {true} {false} {nil} {-1} {0}
{1} {2})
stack: an OrderedCollection(#pushNewArray->#(nil))
statements: an OrderedCollection({reqd := required copy} {allReqd := Set
new} {...etc...
lastPc: 81
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 140
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: a Dictionary(65->an Array({required} {packageMap}
{reqd}...etc...
tempVarCount: 7
Decompiler>>blockTo:
Receiver: a Decompiler
Arguments and temporary variables:
end: 172
exprs: nil
block: nil
oldBase: nil
Receiver's instance variables:
sender: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
pc: 82
constructor: {a DecompilerConstructorForClosures}
method: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
instVars: #(nil nil nil nil nil nil nil nil nil nil nil)
tempVars: an Array({required} {packageMap} {reqd}
{allReqd} {map} {_r6})
constTable: an Array({self} {true} {false} {nil} {-1} {0}
{1} {2})
stack: an OrderedCollection(#pushNewArray->#(nil))
statements: an OrderedCollection({reqd := required copy} {allReqd := Set
new} {...etc...
lastPc: 81
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 140
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: a Dictionary(65->an Array({required} {packageMap}
{reqd}...etc...
tempVarCount: 7
Decompiler>>decompile:in:method:using:
Receiver: a Decompiler
Arguments and temporary variables:
aSelector: #resolveToLoadableSpecs:map:
aClass: MetacelloMCVersionSpec
aMethod: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMetho...etc...
aConstructor: {a DecompilerConstructorForClosures}
block: nil
node: nil
Receiver's instance variables:
sender: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
pc: 82
constructor: {a DecompilerConstructorForClosures}
method: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
instVars: #(nil nil nil nil nil nil nil nil nil nil nil)
tempVars: an Array({required} {packageMap} {reqd}
{allReqd} {map} {_r6})
constTable: an Array({self} {true} {false} {nil} {-1} {0}
{1} {2})
stack: an OrderedCollection(#pushNewArray->#(nil))
statements: an OrderedCollection({reqd := required copy} {allReqd := Set
new} {...etc...
lastPc: 81
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 140
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: a Dictionary(65->an Array({required} {packageMap}
{reqd}...etc...
tempVarCount: 7
Decompiler>>decompile:in:method:
Receiver: a Decompiler
Arguments and temporary variables:
aSelector: #resolveToLoadableSpecs:map:
aClass: MetacelloMCVersionSpec
aMethod: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMetho...etc...
Receiver's instance variables:
sender: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
pc: 82
constructor: {a DecompilerConstructorForClosures}
method: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod...etc...
instVars: #(nil nil nil nil nil nil nil nil nil nil nil)
tempVars: an Array({required} {packageMap} {reqd}
{allReqd} {map} {_r6})
constTable: an Array({self} {true} {false} {nil} {-1} {0}
{1} {2})
stack: an OrderedCollection(#pushNewArray->#(nil))
statements: an OrderedCollection({reqd := required copy} {allReqd := Set
new} {...etc...
lastPc: 81
exit: nil
caseExits: an OrderedCollection()
lastJumpPc: nil
lastReturnPc: nil
limit: 140
hasValue: nil
blockStackBase: 0
numLocalTemps: 0
blockStartsToTempVars: a Dictionary(65->an Array({required} {packageMap}
{reqd}...etc...
tempVarCount: 7
CompiledMethod>>decompileWithTemps
Receiver: (MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod(236716032)")
Arguments and temporary variables:
class: MetacelloMCVersionSpec
selector: #resolveToLoadableSpecs:map:
Receiver's instance variables:
(MetacelloMCVersionSpec>>#resolveToLoadableSpecs:map: "a
CompiledMethod(236716032)")
Decompiler>>decompileBlock:
Receiver: a Decompiler
Arguments and temporary variables: