[squeak-dev] Morphic yellow cross of death

Bob Arning arning315 at comcast.net
Tue Sep 17 00:55:20 UTC 2013


Well, I can sort-of make it happen

- do you have the full SqueakDebug.log?
- did you copy the portion you sent from the file or did you do it 
another way? (like the mail bug report menu item)???
- you might think about upping the numbers in 
ContextPart>>errorReportOn: so we can see the full stack next time
[snip]
         strm position > (startPos+40000) ifTrue: [strm nextPutAll: 
'...etc...'.    "make 40000 much larger"
             ^ self].     "exit early"
         cnt > 60 ifTrue: [strm nextPutAll: '-- and more not shown --'.  
^ self].    "make 60 much larger"
[snip]

Cheers,
Bob

On 9/16/13 5:26 PM, Nicolas Cellier wrote:
> 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/4de4c95a/attachment.htm


More information about the Squeak-dev mailing list