[squeak-dev] Morphic yellow cross of death

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Tue Sep 17 20:26:09 UTC 2013


Ah, sorry, it was not a debugger, it was a ChangeList, and curiously, the
listSelections effectively contains a non boolean (nil)
 #(false false false true true nil true false false false false false false
false false false false)


2013/9/17 Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>

> Ah another instance (see attachment)
> This time I clicked in a debugger methodList and you can see that
>
> (listSource itemSelectedAmongMultiple:  row) ifTrue: [
>
> bugged because it did not answer a boolean...
>
>
> 2013/9/17 Bob Arning <arning315 at comcast.net>
>
>>  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/20130917/e1283def/attachment-0001.htm


More information about the Squeak-dev mailing list