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:


Reply via email to