[squeak-dev] Morphic yellow cross of death

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Mon Sep 16 21:26:10 UTC 2013


Lately I have many instances of these yellow cross over red background that
happens when a low level morphic error is encountered.

It seems related to a MultiNewParagraph lines being nil like in following
stack example.

I don't know if it can help a morphic guru, but I just hate those stateful
behavior with volatile states...

Really hard to debug/understand!!!


UndefinedObject(Object)>>error:
    Receiver: nil
    Arguments and temporary variables:
        aString:     'MessageNotUnderstood:
UndefinedObject>>findBinaryIndex:ifNone:'
    Receiver's instance variables:
nil

[] in WorldState>>displayWorldSafely:
    Receiver: a WorldState
    Arguments and temporary variables:
<<error during printing>
    Receiver's instance variables:
        hands:     {a HandMorph(3216)}
        activeHand:     a HandMorph(3216)
        viewBox:     0 at 0 corner: 1113 at 867
        canvas:     a FormCanvas on: DisplayScreen(1113x867x32)
        damageRecorder:     a DamageRecorder
        stepList:     a Heap(StepMessage(#stepAt: ->
3PButton(#toggleProjectLocalness 739))...etc...
        lastStepTime:     690046
        lastStepMessage:     nil
        lastCycleTime:     690046
        commandHistory:     a CommandHistory
        alarms:     a MorphicAlarmQueue()
        lastAlarmTime:     690046
        remoteServer:     nil
        multiCanvas:     nil

BlockClosure>>cull:cull:
    Receiver: [closure] in WorldState>>displayWorldSafely:
    Arguments and temporary variables:
        firstArg:     'MessageNotUnderstood:
UndefinedObject>>findBinaryIndex:ifNone:'
        secondArg:     nil
    Receiver's instance variables:
        outerContext:     WorldState>>displayWorldSafely:
        startpc:     97
        numArgs:     2

[] in BlockClosure>>ifError:
    Receiver: [closure] in WorldState>>displayWorldSafely:
    Arguments and temporary variables:
        errorHandlerBlock:     MessageNotUnderstood:
UndefinedObject>>findBinaryIndex:ifNon...etc...
        ex:     [closure] in WorldState>>displayWorldSafely:
    Receiver's instance variables:
        outerContext:     WorldState>>displayWorldSafely:
        startpc:     90
        numArgs:     0

BlockClosure>>cull:
    Receiver: [closure] in BlockClosure>>ifError:
    Arguments and temporary variables:
        firstArg:     MessageNotUnderstood:
UndefinedObject>>findBinaryIndex:ifNone:
    Receiver's instance variables:
        outerContext:     BlockClosure>>ifError:
        startpc:     40
        numArgs:     1

[] in MethodContext(ContextPart)>>handleSignal:
    Receiver: BlockClosure>>on:do:
    Arguments and temporary variables:
<<error during printing>
    Receiver's instance variables:
        sender:     BlockClosure>>ifError:
        pc:     17
        stackp:     3
        method:     (BlockClosure>>#on:do: "a CompiledMethod(680)")
        closureOrNil:     nil
        receiver:     [closure] in WorldState>>displayWorldSafely:

BlockClosure>>ensure:
    Receiver: [closure] in MethodContext(ContextPart)>>handleSignal:
    Arguments and temporary variables:
        aBlock:     [closure] in MethodContext(ContextPart)>>handleSignal:
        complete:     nil
        returnValue:     nil
    Receiver's instance variables:
        outerContext:     MethodContext(ContextPart)>>handleSignal:
        startpc:     98
        numArgs:     0

MethodContext(ContextPart)>>handleSignal:
    Receiver: BlockClosure>>on:do:
    Arguments and temporary variables:
        exception:     MessageNotUnderstood:
UndefinedObject>>findBinaryIndex:ifNone:
        val:     nil
    Receiver's instance variables:
        sender:     BlockClosure>>ifError:
        pc:     17
        stackp:     3
        method:     (BlockClosure>>#on:do: "a CompiledMethod(680)")
        closureOrNil:     nil
        receiver:     [closure] in WorldState>>displayWorldSafely:

MessageNotUnderstood(Exception)>>signal
    Receiver: MessageNotUnderstood: UndefinedObject>>findBinaryIndex:ifNone:
    Arguments and temporary variables:

    Receiver's instance variables:
        messageText:     nil
        tag:     nil
        signalContext:     MessageNotUnderstood(Exception)>>signal
        handlerContext:     BlockClosure>>on:do:
        outerContext:     nil
        message:     findBinaryIndex: [closure] in
MultiNewParagraph(NewParagraph)>>fastFin...etc...
        receiver:     nil
        reachedDefaultHandler:     false

UndefinedObject(Object)>>doesNotUnderstand: #findBinaryIndex:ifNone:
    Receiver: nil
    Arguments and temporary variables:
        aMessage:     findBinaryIndex: [closure] in
MultiNewParagraph(NewParagraph)>>fastFi...etc...
        exception:     MessageNotUnderstood:
UndefinedObject>>findBinaryIndex:ifNone:
        resumeValue:     nil
    Receiver's instance variables:
nil

MultiNewParagraph(NewParagraph)>>fastFindFirstLineSuchThat:
    Receiver: a MultiNewParagraph
    Arguments and temporary variables:
        lineBlock:     [closure] in
MultiNewParagraph(NewParagraph)>>lineIndexForPoint:
    Receiver's instance variables:
        text:     a Text for 'evaluate: textOrStream cue: aCue ifFail:
failBlock logged: lo...etc...
        textStyle:     a TextStyle Bitmap DejaVu Sans 9
        firstCharacterIndex:     1
        container:     0 at 0 corner: 669 at 9999999
        lines:     {a TextLine 1 to: 67 . a TextLine 68 to: 139 . a
TextLine 140 to: 240 . ...etc...
        positionWhenComposed:     0 at 0
        offsetToEnd:     1089
        maxRightX:     652
        selectionStart:     a CharacterBlock with index 278 and character
Character tab and...etc...
        selectionStop:     a CharacterBlock with index 278 and character
Character tab and ...etc...
        wantsColumnBreaks:     false
        focused:     true
        caretRect:     nil
        showCaret:     true
        presentationText:     nil
        presentationLines:     nil

MultiNewParagraph(NewParagraph)>>lineIndexForPoint:
    Receiver: a MultiNewParagraph
    Arguments and temporary variables:
        aPoint:     669 at 274
        i:     nil
        py:     274
    Receiver's instance variables:
        text:     a Text for 'evaluate: textOrStream cue: aCue ifFail:
failBlock logged: lo...etc...
        textStyle:     a TextStyle Bitmap DejaVu Sans 9
        firstCharacterIndex:     1
        container:     0 at 0 corner: 669 at 9999999
        lines:     {a TextLine 1 to: 67 . a TextLine 68 to: 139 . a
TextLine 140 to: 240 . ...etc...
        positionWhenComposed:     0 at 0
        offsetToEnd:     1089
        maxRightX:     652
        selectionStart:     a CharacterBlock with index 278 and character
Character tab and...etc...
        selectionStop:     a CharacterBlock with index 278 and character
Character tab and ...etc...
        wantsColumnBreaks:     false
        focused:     true
        caretRect:     nil
        showCaret:     true
        presentationText:     nil
        presentationLines:     nil

MultiNewParagraph>>displayOn:using:at:
    Receiver: a MultiNewParagraph
    Arguments and temporary variables:
        aCanvas:     a FormCanvas on: DisplayScreen(1113x867x32)
        displayScanner:     a MultiDisplayScanner
        somePosition:     80 at 436
        visibleRectangle:     0 at 0 corner: 669 at 274
        offset:     80 at 436
        leftInRun:     0
        line:     nil
        i:     nil
        iLimiT:     nil
    Receiver's instance variables:
        text:     a Text for 'evaluate: textOrStream cue: aCue ifFail:
failBlock logged: lo...etc...
        textStyle:     a TextStyle Bitmap DejaVu Sans 9
        firstCharacterIndex:     1
        container:     0 at 0 corner: 669 at 9999999
        lines:     {a TextLine 1 to: 67 . a TextLine 68 to: 139 . a
TextLine 140 to: 240 . ...etc...
        positionWhenComposed:     0 at 0
        offsetToEnd:     1089
        maxRightX:     652
        selectionStart:     a CharacterBlock with index 278 and character
Character tab and...etc...
        selectionStop:     a CharacterBlock with index 278 and character
Character tab and ...etc...
        wantsColumnBreaks:     false
        focused:     true
        caretRect:     nil
        showCaret:     true
        presentationText:     nil
        presentationLines:     nil

FormCanvas>>paragraph:bounds:color:
    Receiver: a FormCanvas on: DisplayScreen(1113x867x32)
    Arguments and temporary variables:
        para:     a MultiNewParagraph
        bounds:     0 at 0 corner: 669 at 450
        c:     Color black
        scanner:     a MultiDisplayScanner
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     80 at 436
        clipRect:     77 at 436 corner: 752 at 710
        form:     DisplayScreen(1113x867x32)
        port:     a GrafPort
        shadowColor:     nil

TextMorphForEditView(TextMorph)>>drawOn:
    Receiver: a TextMorphForEditView(975)
    Arguments and temporary variables:
        aCanvas:     a FormCanvas on: DisplayScreen(1113x867x32)
        fauxBounds:     0 at 0 corner: 669 at 450
    Receiver's instance variables:
        bounds:     0 at 0 corner: 669 at 450
        owner:     a TransformMorph(1921)
        submorphs:     #()
        fullBounds:     0 at 0 corner: 669 at 450
        color:     Color black
        extension:     a MorphExtension (1256) [other:  (errorOnDraw ->
true) (blinkStart -...etc...
        borderWidth:     0
        borderColor:     Color black
        textStyle:     a TextStyle Bitmap DejaVu Sans 9
        text:     a Text for 'evaluate: textOrStream cue: aCue ifFail:
failBlock logged: lo...etc...
        wrapFlag:     true
        paragraph:     a MultiNewParagraph
        editor:     a SmalltalkEditor
        container:     nil
        predecessor:     nil
        successor:     nil
        backgroundColor:     nil
        margins:     nil
        editHistory:     nil
        editView:     a PluggableTextMorphPlus(3589)
        acceptOnCR:     false

FormCanvas(Canvas)>>draw:
    Receiver: a FormCanvas on: DisplayScreen(1113x867x32)
    Arguments and temporary variables:
        anObject:     a TextMorphForEditView(975)
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     80 at 436
        clipRect:     77 at 436 corner: 752 at 710
        form:     DisplayScreen(1113x867x32)
        port:     a GrafPort
        shadowColor:     nil

FormCanvas(Canvas)>>drawMorph:
    Receiver: a FormCanvas on: DisplayScreen(1113x867x32)
    Arguments and temporary variables:
        aMorph:     a TextMorphForEditView(975)
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     80 at 436
        clipRect:     77 at 436 corner: 752 at 710
        form:     DisplayScreen(1113x867x32)
        port:     a GrafPort
        shadowColor:     nil

[] in TextMorphForEditView(Morph)>>fullDrawOn:
    Receiver: a TextMorphForEditView(975)
    Arguments and temporary variables:
        aCanvas:     a FormCanvas on: DisplayScreen(1113x867x32)
    Receiver's instance variables:
        bounds:     0 at 0 corner: 669 at 450
        owner:     a TransformMorph(1921)
        submorphs:     #()
        fullBounds:     0 at 0 corner: 669 at 450
        color:     Color black
        extension:     a MorphExtension (1256) [other:  (errorOnDraw ->
true) (blinkStart -...etc...
        borderWidth:     0
        borderColor:     Color black
        textStyle:     a TextStyle Bitmap DejaVu Sans 9
        text:     a Text for 'evaluate: textOrStream cue: aCue ifFail:
failBlock logged: lo...etc...
        wrapFlag:     true
        paragraph:     a MultiNewParagraph
        editor:     a SmalltalkEditor
        container:     nil
        predecessor:     nil
        successor:     nil
        backgroundColor:     nil
        margins:     nil
        editHistory:     nil
        editView:     a PluggableTextMorphPlus(3589)
        acceptOnCR:     false

FormCanvas>>roundCornersOf:in:during:
    Receiver: a FormCanvas on: DisplayScreen(1113x867x32)
    Arguments and temporary variables:
        aMorph:     a TextMorphForEditView(975)
        bounds:     0 at 0 corner: 669 at 450
        aBlock:     [closure] in TextMorphForEditView(Morph)>>fullDrawOn:
    Receiver's instance variables:
        target:     nil
        filterSelector:     nil
        origin:     80 at 436
        clipRect:     77 at 436 corner: 752 at 710
        form:     DisplayScreen(1113x867x32)
        port:     a GrafPort
        shadowColor:     nil


--- The full stack ---
UndefinedObject(Object)>>error:
[] in WorldState>>displayWorldSafely:
BlockClosure>>cull:cull:
[] in BlockClosure>>ifError:
BlockClosure>>cull:
[] in MethodContext(ContextPart)>>handleSignal:
BlockClosure>>ensure:
MethodContext(ContextPart)>>handleSignal:
MessageNotUnderstood(Exception)>>signal
UndefinedObject(Object)>>doesNotUnderstand: #findBinaryIndex:ifNone:
MultiNewParagraph(NewParagraph)>>fastFindFirstLineSuchThat:
MultiNewParagraph(NewParagraph)>>lineIndexForPoint:
MultiNewParagraph>>displayOn:using:at:
FormCanvas>>paragraph:bounds:color:
TextMorphForEditView(TextMorph)>>drawOn:
FormCanvas(Canvas)>>draw:
FormCanvas(Canvas)>>drawMorph:
[] in TextMorphForEditView(Morph)>>fullDrawOn:
FormCanvas>>roundCornersOf:in:during:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FormCanvas(Canvas)>>roundCornersOf:during:
TextMorphForEditView(Morph)>>fullDrawOn:
FormCanvas(Canvas)>>fullDraw:
FormCanvas(Canvas)>>fullDrawMorph:
[] in [] in TransformMorph>>drawSubmorphsOn:
Array(SequenceableCollection)>>reverseDo:
[] in TransformMorph>>drawSubmorphsOn:
FormCanvas>>transformBy:clippingTo:during:smoothing:
TransformMorph>>drawSubmorphsOn:
[] in TransformMorph(Morph)>>fullDrawOn:
FormCanvas>>roundCornersOf:in:during:
FormCanvas(Canvas)>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20130916/3947dd6c/attachment.htm


More information about the Squeak-dev mailing list