Hello,
I updated my Trunk image this morning and just got an emergency evaluator popping up. I seem to have a bug in a hasContentsInExplorer method of one of my classes, but I didn't think that would lead to an emergency... At least it continues quite normally if I press any key. Got a bunch of debuggers and could fix the error there. Attached you find the SqueakDebug.log. Now I will type the stack trace from the evaluator... Is there a way to copy that except for taking a screenshot? ***System error handling failed*** MessageNotUnderstood: UndefinedObject>>notEmpty Project class>>tryEmergencyEvaluatorForRecovery: AnimMorphicProject(Project)>>primitiveError: AnimMorphicProject(Project)>>recursiveError: AnimMorphicProject(MorphicProject)>>recursiveError: ECToolSet class(StandardToolSet class)>>handleRecursiveError: ToolSet class>>handleRecursiveError: Debugger class>>openOn:context:label:contents:fullView: ECToolSet class(StandardToolSet class)>>debugProcess:context:label:contents:fullView: ToolSet class>>debugProcess:context:label:contents:fullView: Process>>debug:title:full:contents: Process>>debug:title:full: Process>>debug:title: ECToolSet class(StandardToolSet class)>>handleError: ToolSet class>>handleError: UnhandledError>>defaultAction UndefinedObject>>handleSignal: UnhandledError(Exception)>>signal UnhandledError class>>signalForException: MessageNotUnderstood(Error)>>defaultAction MessageNotUnderstood>>defaultAction ----------------------------- Kind regards, Jakob SqueakDebug.log (26K) Download Attachment |
Hi Jakob,
> Now I will type the stack trace from the evaluator... Is there a way to copy that except for taking a screenshot?
Wow, did you really retype all these lines instead of making a screenshot? :D I'd recommend this one:
Debugger new
process: Processor activeProcess context: thisContext;
copyBugReportToClipboard
or, alternatively, copy the relevant parts from #copyBugReportToClipboard.
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von Jakob Reschke <[hidden email]>
Gesendet: Samstag, 22. Februar 2020 17:09:40 An: [hidden email] Betreff: [squeak-dev] Emergency evaluator due to MNU in hasContentsInExplorer Hello,
I updated my Trunk image this morning and just got an emergency evaluator popping up. I seem to have a bug in a hasContentsInExplorer method of one of my classes, but I didn't think that would lead to an emergency... At least it continues quite normally if I press any key. Got a bunch of debuggers and could fix the error there. Attached you find the SqueakDebug.log. Now I will type the stack trace from the evaluator... Is there a way to copy that except for taking a screenshot? ***System error handling failed*** MessageNotUnderstood: UndefinedObject>>notEmpty Project class>>tryEmergencyEvaluatorForRecovery: AnimMorphicProject(Project)>>primitiveError: AnimMorphicProject(Project)>>recursiveError: AnimMorphicProject(MorphicProject)>>recursiveError: ECToolSet class(StandardToolSet class)>>handleRecursiveError: ToolSet class>>handleRecursiveError: Debugger class>>openOn:context:label:contents:fullView: ECToolSet class(StandardToolSet class)>>debugProcess:context:label:contents:fullView: ToolSet class>>debugProcess:context:label:contents:fullView: Process>>debug:title:full:contents: Process>>debug:title:full: Process>>debug:title: ECToolSet class(StandardToolSet class)>>handleError: ToolSet class>>handleError: UnhandledError>>defaultAction UndefinedObject>>handleSignal: UnhandledError(Exception)>>signal UnhandledError class>>signalForException: MessageNotUnderstood(Error)>>defaultAction MessageNotUnderstood>>defaultAction ----------------------------- Kind regards, Jakob
Carpe Squeak!
|
Am Sa., 22. Feb. 2020 um 17:17 Uhr schrieb Thiede, Christoph
<[hidden email]>: > > Wow, did you really retype all these lines instead of making a screenshot? :D Yes, I prefer having the text as text if it is about text and not graphics. Same for method texts. > > I'd recommend this one: > > > Debugger new > process: Processor activeProcess context: thisContext; > copyBugReportToClipboard > > or, alternatively, copy the relevant parts from #copyBugReportToClipboard. Maybe I will think of it next time I get this thing and will type that instead of the stack trace. ;-) |
Or you use something like this - at a first glance, it works surprisingly well:
:-)
Von: Squeak-dev <[hidden email]> im Auftrag von Jakob Reschke <[hidden email]>
Gesendet: Samstag, 22. Februar 2020 17:29:25 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] Emergency evaluator due to MNU in hasContentsInExplorer Am Sa., 22. Feb. 2020 um 17:17 Uhr schrieb Thiede, Christoph
<[hidden email]>: > > Wow, did you really retype all these lines instead of making a screenshot? :D Yes, I prefer having the text as text if it is about text and not graphics. Same for method texts. > > I'd recommend this one: > > > Debugger new > process: Processor activeProcess context: thisContext; > copyBugReportToClipboard > > or, alternatively, copy the relevant parts from #copyBugReportToClipboard. Maybe I will think of it next time I get this thing and will type that instead of the stack trace. ;-)
Carpe Squeak!
|
> On 22.02.2020, at 17:39, Thiede, Christoph <[hidden email]> wrote: > > Or you use something like this - at a first glance, it works surprisingly well: > Screenshot OCR online - clipboard, drag and drop, upload. Online crop. > www.structurise.com > Screenshot OCR online - convert picture to text using clipboard copy and paste, drag and drop or upload. Crop the image online. Preserve sizes and colors. > :-) But that does not create text. Which is much more helpful than images in these contexts. -t > Von: Squeak-dev <[hidden email]> im Auftrag von Jakob Reschke <[hidden email]> > Gesendet: Samstag, 22. Februar 2020 17:29:25 > An: The general-purpose Squeak developers list > Betreff: Re: [squeak-dev] Emergency evaluator due to MNU in hasContentsInExplorer > > Am Sa., 22. Feb. 2020 um 17:17 Uhr schrieb Thiede, Christoph > <[hidden email]>: > > > > Wow, did you really retype all these lines instead of making a screenshot? :D > > Yes, I prefer having the text as text if it is about text and not > graphics. Same for method texts. > > > > > I'd recommend this one: > > > > > > Debugger new > > process: Processor activeProcess context: thisContext; > > copyBugReportToClipboard > > > > or, alternatively, copy the relevant parts from #copyBugReportToClipboard. > > Maybe I will think of it next time I get this thing and will type that > instead of the stack trace. ;-) |
> On 22.02.2020, at 19:27, Tobias Pape <[hidden email]> wrote: > > >> On 22.02.2020, at 17:39, Thiede, Christoph <[hidden email]> wrote: >> >> Or you use something like this - at a first glance, it works surprisingly well: >> Screenshot OCR online - clipboard, drag and drop, upload. Online crop. >> www.structurise.com >> Screenshot OCR online - convert picture to text using clipboard copy and paste, drag and drop or upload. Crop the image online. Preserve sizes and colors. >> :-) > > But that does not create text. Which is much more helpful than images in these contexts. > -t ignore that… silly me… > >> Von: Squeak-dev <[hidden email]> im Auftrag von Jakob Reschke <[hidden email]> >> Gesendet: Samstag, 22. Februar 2020 17:29:25 >> An: The general-purpose Squeak developers list >> Betreff: Re: [squeak-dev] Emergency evaluator due to MNU in hasContentsInExplorer >> >> Am Sa., 22. Feb. 2020 um 17:17 Uhr schrieb Thiede, Christoph >> <[hidden email]>: >>> >>> Wow, did you really retype all these lines instead of making a screenshot? :D >> >> Yes, I prefer having the text as text if it is about text and not >> graphics. Same for method texts. >> >>> >>> I'd recommend this one: >>> >>> >>> Debugger new >>> process: Processor activeProcess context: thisContext; >>> copyBugReportToClipboard >>> >>> or, alternatively, copy the relevant parts from #copyBugReportToClipboard. >> >> Maybe I will think of it next time I get this thing and will type that >> instead of the stack trace. ;-) > > > |
> On 2020-02-22, at 10:28 AM, Tobias Pape <[hidden email]> wrote: > > >> On 22.02.2020, at 19:27, Tobias Pape <[hidden email]> wrote: >> >> >>> On 22.02.2020, at 17:39, Thiede, Christoph <[hidden email]> wrote: >>> >>> Or you use something like this - at a first glance, it works surprisingly well: >>> Screenshot OCR online - clipboard, drag and drop, upload. Online crop. >>> www.structurise.com >>> Screenshot OCR online - convert picture to text using clipboard copy and paste, drag and drop or upload. Crop the image online. Preserve sizes and colors. >>> :-) >> >> But that does not create text. Which is much more helpful than images in these contexts. >> -t > > ignore that… silly me… The real problem is that it seems to be Windows only. Sad. Especially when the actual algorithm and processing code is almost certainly completely machine agnostic. tim -- tim Rowledge; [hidden email]; http://www.rowledge.org/tim This is all a lot simpler and a lot more complicated than you could possibly imagine |
In reply to this post by Jakob Reschke
Hi Jakob,
I can't quite see what's going on here, but if you think that you may be able to reproduce the failure, then try adding an MVC project as a parent of the Morphic (or AnimMorphicProject) that you are in while doing the update. When the failure happens, the system will try to open a debugger in the MVC project (see Project>>primitiveError:). If that works, then you will be able to work with a real debugger rather than the emergency evaluator. There is probably some recursive error going on here, and you should be able to find it if you can get into a debugger. I'll note that the MNU at the top of the stack seems odd to me, I can't quite figure out where that would be coming from, but I wonder if the #errorMessage is nil for some reason? I still can't see where the #notEmpty send is coming from though. HTH, Dave On Sat, Feb 22, 2020 at 05:09:40PM +0100, Jakob Reschke wrote: > Hello, > > I updated my Trunk image this morning and just got an emergency > evaluator popping up. I seem to have a bug in a hasContentsInExplorer > method of one of my classes, but I didn't think that would lead to an > emergency... > > At least it continues quite normally if I press any key. Got a bunch > of debuggers and could fix the error there. > > Attached you find the SqueakDebug.log. Now I will type the stack trace > from the evaluator... Is there a way to copy that except for taking a > screenshot? > > ***System error handling failed*** > MessageNotUnderstood: UndefinedObject>>notEmpty > Project class>>tryEmergencyEvaluatorForRecovery: > AnimMorphicProject(Project)>>primitiveError: > AnimMorphicProject(Project)>>recursiveError: > AnimMorphicProject(MorphicProject)>>recursiveError: > ECToolSet class(StandardToolSet class)>>handleRecursiveError: > ToolSet class>>handleRecursiveError: > Debugger class>>openOn:context:label:contents:fullView: > ECToolSet class(StandardToolSet > class)>>debugProcess:context:label:contents:fullView: > ToolSet class>>debugProcess:context:label:contents:fullView: > Process>>debug:title:full:contents: > Process>>debug:title:full: > Process>>debug:title: > ECToolSet class(StandardToolSet class)>>handleError: > ToolSet class>>handleError: > UnhandledError>>defaultAction > UndefinedObject>>handleSignal: > UnhandledError(Exception)>>signal > UnhandledError class>>signalForException: > MessageNotUnderstood(Error)>>defaultAction > MessageNotUnderstood>>defaultAction > ----------------------------- > > Kind regards, > Jakob > |
I should add that you can evaluate "MVCProject new beTopProject" to
add an MVC project to support emergency recovery. This will be done automatically in the 5.3 release process (thanks Marcel) but if your current image does not have an MVC project you can add it in this way. Dave On Sat, Feb 22, 2020 at 04:13:17PM -0500, David T. Lewis wrote: > Hi Jakob, > > I can't quite see what's going on here, but if you think that > you may be able to reproduce the failure, then try adding an > MVC project as a parent of the Morphic (or AnimMorphicProject) > that you are in while doing the update. When the failure happens, > the system will try to open a debugger in the MVC project (see > Project>>primitiveError:). > > If that works, then you will be able to work with a real debugger > rather than the emergency evaluator. > > There is probably some recursive error going on here, and you > should be able to find it if you can get into a debugger. I'll > note that the MNU at the top of the stack seems odd to me, I > can't quite figure out where that would be coming from, but I > wonder if the #errorMessage is nil for some reason? I still can't > see where the #notEmpty send is coming from though. > > HTH, > Dave > > > On Sat, Feb 22, 2020 at 05:09:40PM +0100, Jakob Reschke wrote: > > Hello, > > > > I updated my Trunk image this morning and just got an emergency > > evaluator popping up. I seem to have a bug in a hasContentsInExplorer > > method of one of my classes, but I didn't think that would lead to an > > emergency... > > > > At least it continues quite normally if I press any key. Got a bunch > > of debuggers and could fix the error there. > > > > Attached you find the SqueakDebug.log. Now I will type the stack trace > > from the evaluator... Is there a way to copy that except for taking a > > screenshot? > > > > ***System error handling failed*** > > MessageNotUnderstood: UndefinedObject>>notEmpty > > Project class>>tryEmergencyEvaluatorForRecovery: > > AnimMorphicProject(Project)>>primitiveError: > > AnimMorphicProject(Project)>>recursiveError: > > AnimMorphicProject(MorphicProject)>>recursiveError: > > ECToolSet class(StandardToolSet class)>>handleRecursiveError: > > ToolSet class>>handleRecursiveError: > > Debugger class>>openOn:context:label:contents:fullView: > > ECToolSet class(StandardToolSet > > class)>>debugProcess:context:label:contents:fullView: > > ToolSet class>>debugProcess:context:label:contents:fullView: > > Process>>debug:title:full:contents: > > Process>>debug:title:full: > > Process>>debug:title: > > ECToolSet class(StandardToolSet class)>>handleError: > > ToolSet class>>handleError: > > UnhandledError>>defaultAction > > UndefinedObject>>handleSignal: > > UnhandledError(Exception)>>signal > > UnhandledError class>>signalForException: > > MessageNotUnderstood(Error)>>defaultAction > > MessageNotUnderstood>>defaultAction > > ----------------------------- > > > > Kind regards, > > Jakob > > > > > > |
In reply to this post by David T. Lewis
Am Sa., 22. Feb. 2020 um 22:13 Uhr schrieb David T. Lewis <[hidden email]>:
>...while doing the update. Sorry, I did not mean that it happened during or because of the update -- I merely intended to indicate that my image is up to date. I just reproduced it in a fresh image, using the following: Enable "open tools attached to mouse cursor" preference. BadClass >> hasContentsInExplorer ^ nil notEmpty {BadClass new} <--- right click, explore The ObjectExplorer has to be attached to the Hand to trigger the issue. That's why you must "explore" via the menu, it does not work by pressing Cmd-Shift-i. My expectation is that the drawing error is caught, the explorer tree turns red, and a debugger opens in the same project. This does happen when the explorer is not attached to the hand. It looks like the debugger is started in the new UI process, where it reaches this: [] in MorphicDebugger class>>openOn: processToDebug context: context label: title contents: contentsStringOrNil fullView: full ... "Try drawing the debugger tool at least once to avoid freeze." debugger topView ifNotNil: [:window | window world displayWorld. "Not safely!"]. In WorldState>>displayWorld:submorphs: it attempts to draw all the hands. The one hand still has the broken ObjectExplorer SystemWindow as a submorph. Thus, the explorer is drawn, the error is triggered once again, and the second debugger notices a recursive invocation. Below is the error report from the MVC debugger (you may want to go straight ahead to the bottom because the detailed stack report does not reach so far). Kind regards, Jakob 23 February 2020 7:17:54.275866 pm VM: Win32 - Smalltalk Image: Squeak5.3beta [latest update: #19402] SecurityManager state: Restricted: false FileAccess: true SocketAccess: true Working Dir C:\Squeak\smalltalkCi Trusted Dir C:\Squeak\smalltalkCi\Jakob Untrusted Dir C:\Users\Jakob\Documents\My Squeak MorphicProject>>suspendProcessForDebug Receiver: a MorphicProject (hasContentsInExplorer) in a PasteUpMorph(2434915) [world] Arguments and temporary variables: p: a Process in MorphicProject>>suspendProcessForDebug Receiver's instance variables: dependents: nil world: a PasteUpMorph(2434915) [world] uiManager: a MorphicUIManager changeSet: a ChangeSet named hasContentsInExplorer transcript: a TranscriptStream parentProject: a MVCProject (Unnamed) in a ControlManager previousProject: a MVCProject (Unnamed) in a ControlManager displayDepth: 32 viewSize: 151@132 thumbnail: Form(1024x768x32) nextProject: nil projectParameters: an IdentityDictionary(#PrevailingProjectFlags->an IdentityDictionary...etc... version: nil urlList: nil lastDirectory: nil lastSavedAtSeconds: nil projectPreferenceFlagDictionary: an IdentityDictionary(#enablePortraitMode->fal...etc... resourceManager: a ResourceManager uiProcess: nil MVCProject(Project)>>enterForEmergencyRecovery Receiver: a MVCProject (Unnamed) in a ControlManager Arguments and temporary variables: leavingProject: a MorphicProject (hasContentsInExplorer) in a PasteUpMorph(2434...etc... process: a Process in MorphicProject>>suspendProcessForDebug titleForDebuggerWindow: 'FATAL PROJECT ERROR: Project was ''hasContentsInExplor...etc... Receiver's instance variables: dependents: nil world: a ControlManager uiManager: a MVCUIManager changeSet: a ChangeSet named Unnamed transcript: a TranscriptStream parentProject: a MVCProject (Unnamed) in a ControlManager previousProject: a MorphicProject (hasContentsInExplorer) in a PasteUpMorph(243...etc... displayDepth: 32 viewSize: 128@96 thumbnail: DisplayScreen(128x96x32) nextProject: a MorphicProject (hasContentsInExplorer) in a PasteUpMorph(2434915...etc... projectParameters: an IdentityDictionary(#disabledGlobalFlapIDs->a Set('Paintin...etc... version: nil urlList: nil lastDirectory: nil lastSavedAtSeconds: nil projectPreferenceFlagDictionary: an IdentityDictionary(#enablePortraitMode->fal...etc... resourceManager: nil Project class>>tryOtherProjectForRecovery: Receiver: Project Arguments and temporary variables: errorMessage: 'MessageNotUnderstood: UndefinedObject>>notEmpty' safeProject: a MVCProject (Unnamed) in a ControlManager nextProject: a MVCProject (Unnamed) in a ControlManager p: a MVCProject (Unnamed) in a ControlManager Receiver's instance variables: superclass: Model methodDict: a MethodDictionary(size 256) format: 65554 instanceVariables: #('world' 'uiManager' 'changeSet' 'transcript' 'parentProjec...etc... organization: ('accessing' changeSet color displayDepth displayDepth: findProjectView:...etc... subclasses: {MVCProject . MorphicProject} name: #Project classPool: a Dictionary(#AllProjects->an OrderedCollection(a MorphicProject (ha...etc... sharedPools: nil environment: Smalltalk category: #'System-Support' MorphicProject(Project)>>primitiveError: Receiver: a MorphicProject (hasContentsInExplorer) in a PasteUpMorph(2434915) [world] Arguments and temporary variables: errorMessage: 'MessageNotUnderstood: UndefinedObject>>notEmpty' Receiver's instance variables: dependents: nil world: a PasteUpMorph(2434915) [world] uiManager: a MorphicUIManager changeSet: a ChangeSet named hasContentsInExplorer transcript: a TranscriptStream parentProject: a MVCProject (Unnamed) in a ControlManager previousProject: a MVCProject (Unnamed) in a ControlManager displayDepth: 32 viewSize: 151@132 thumbnail: Form(1024x768x32) nextProject: nil projectParameters: an IdentityDictionary(#PrevailingProjectFlags->an IdentityDictionary...etc... version: nil urlList: nil lastDirectory: nil lastSavedAtSeconds: nil projectPreferenceFlagDictionary: an IdentityDictionary(#enablePortraitMode->fal...etc... resourceManager: a ResourceManager uiProcess: nil MorphicProject(Project)>>recursiveError: Receiver: a MorphicProject (hasContentsInExplorer) in a PasteUpMorph(2434915) [world] Arguments and temporary variables: errorMessage: 'MessageNotUnderstood: UndefinedObject>>notEmpty' Receiver's instance variables: dependents: nil world: a PasteUpMorph(2434915) [world] uiManager: a MorphicUIManager changeSet: a ChangeSet named hasContentsInExplorer transcript: a TranscriptStream parentProject: a MVCProject (Unnamed) in a ControlManager previousProject: a MVCProject (Unnamed) in a ControlManager displayDepth: 32 viewSize: 151@132 thumbnail: Form(1024x768x32) nextProject: nil projectParameters: an IdentityDictionary(#PrevailingProjectFlags->an IdentityDictionary...etc... version: nil urlList: nil lastDirectory: nil lastSavedAtSeconds: nil projectPreferenceFlagDictionary: an IdentityDictionary(#enablePortraitMode->fal...etc... resourceManager: a ResourceManager uiProcess: nil MorphicProject>>recursiveError: Receiver: a MorphicProject (hasContentsInExplorer) in a PasteUpMorph(2434915) [world] Arguments and temporary variables: msg: 'MessageNotUnderstood: UndefinedObject>>notEmpty' Receiver's instance variables: dependents: nil world: a PasteUpMorph(2434915) [world] uiManager: a MorphicUIManager changeSet: a ChangeSet named hasContentsInExplorer transcript: a TranscriptStream parentProject: a MVCProject (Unnamed) in a ControlManager previousProject: a MVCProject (Unnamed) in a ControlManager displayDepth: 32 viewSize: 151@132 thumbnail: Form(1024x768x32) nextProject: nil projectParameters: an IdentityDictionary(#PrevailingProjectFlags->an IdentityDictionary...etc... version: nil urlList: nil lastDirectory: nil lastSavedAtSeconds: nil projectPreferenceFlagDictionary: an IdentityDictionary(#enablePortraitMode->fal...etc... resourceManager: a ResourceManager uiProcess: nil StandardToolSet class>>handleRecursiveError: Receiver: StandardToolSet Arguments and temporary variables: description: 'MessageNotUnderstood: UndefinedObject>>notEmpty' Receiver's instance variables: superclass: Object methodDict: a MethodDictionary() format: 0 instanceVariables: nil organization: ('as yet unclassified') subclasses: {CommandLineToolSet . DebuggerTestsToolSet} name: #StandardToolSet classPool: nil sharedPools: nil environment: Smalltalk category: #'Tools-Base' ToolSet class>>handleRecursiveError: Receiver: ToolSet Arguments and temporary variables: description: 'MessageNotUnderstood: UndefinedObject>>notEmpty' ts: StandardToolSet Receiver's instance variables: superclass: AppRegistry methodDict: a MethodDictionary() format: 0 instanceVariables: nil organization: ('as yet unclassified') subclasses: nil name: #ToolSet classPool: nil sharedPools: nil environment: Smalltalk category: #'System-Applications' registeredClasses: an OrderedCollection(StandardToolSet CommandLineToolSet) default: StandardToolSet Debugger class>>openOn:context:label:contents:fullView: Receiver: Debugger Arguments and temporary variables: process: a Process in MorphicProject>>suspendProcessForDebug context: UndefinedObject(Object)>>doesNotUnderstand: #notEmpty title: 'MessageNotUnderstood: UndefinedObject>>notEmpty' contentsStringOrNil: nil bool: false ap: a Process in MorphicProject>>suspendProcessForDebug Receiver's instance variables: superclass: CodeHolder methodDict: a MethodDictionary(size 147) format: 65558 instanceVariables: #('interruptedProcess' 'contextStack' 'contextStackIndex' 'c...etc... organization: ('accessing' contents contents:notifying: contextStackTop contextVariablesInspector...etc... subclasses: {TestCaseDebugger . MorphicDebugger . MVCDebugger} name: #Debugger classPool: a Dictionary(#ContextStackKeystrokes->a Dictionary($T->#stepIntoBlock...etc... sharedPools: nil environment: Smalltalk category: #'Tools-Debugger' StandardToolSet class>>debugProcess:context:label:contents:fullView: Receiver: StandardToolSet Arguments and temporary variables: aProcess: a Process in MorphicProject>>suspendProcessForDebug aContext: UndefinedObject(Object)>>doesNotUnderstand: #notEmpty aString: 'MessageNotUnderstood: UndefinedObject>>notEmpty' contents: nil aBool: false Receiver's instance variables: superclass: Object methodDict: a MethodDictionary() format: 0 instanceVariables: nil organization: ('as yet unclassified') subclasses: {CommandLineToolSet . DebuggerTestsToolSet} name: #StandardToolSet classPool: nil sharedPools: nil environment: Smalltalk category: #'Tools-Base' ToolSet class>>debugProcess:context:label:contents:fullView: Receiver: ToolSet Arguments and temporary variables: aProcess: a Process in MorphicProject>>suspendProcessForDebug aContext: UndefinedObject(Object)>>doesNotUnderstand: #notEmpty aString: 'MessageNotUnderstood: UndefinedObject>>notEmpty' contents: nil aBool: false ts: StandardToolSet Receiver's instance variables: superclass: AppRegistry methodDict: a MethodDictionary() format: 0 instanceVariables: nil organization: ('as yet unclassified') subclasses: nil name: #ToolSet classPool: nil sharedPools: nil environment: Smalltalk category: #'System-Applications' registeredClasses: an OrderedCollection(StandardToolSet CommandLineToolSet) default: StandardToolSet Process>>debug:title:full:contents: Receiver: a Process in MorphicProject>>suspendProcessForDebug Arguments and temporary variables: context: UndefinedObject(Object)>>doesNotUnderstand: #notEmpty title: 'MessageNotUnderstood: UndefinedObject>>notEmpty' bool: false contents: nil topCtxt: Process>>debug:title:full:contents: Receiver's instance variables: nextLink: nil suspendedContext: MorphicProject>>suspendProcessForDebug priority: 40 myList: nil threadId: nil effectiveProcess: nil name: nil island: nil env: a Dictionary(#errorRecursionFlag->false ) Process>>debug:title:full: Receiver: a Process in MorphicProject>>suspendProcessForDebug Arguments and temporary variables: context: UndefinedObject(Object)>>doesNotUnderstand: #notEmpty title: 'MessageNotUnderstood: UndefinedObject>>notEmpty' bool: false Receiver's instance variables: nextLink: nil suspendedContext: MorphicProject>>suspendProcessForDebug priority: 40 myList: nil threadId: nil effectiveProcess: nil name: nil island: nil env: a Dictionary(#errorRecursionFlag->false ) Process>>debug:title: Receiver: a Process in MorphicProject>>suspendProcessForDebug Arguments and temporary variables: context: UndefinedObject(Object)>>doesNotUnderstand: #notEmpty title: 'MessageNotUnderstood: UndefinedObject>>notEmpty' Receiver's instance variables: nextLink: nil suspendedContext: MorphicProject>>suspendProcessForDebug priority: 40 myList: nil threadId: nil effectiveProcess: nil name: nil island: nil env: a Dictionary(#errorRecursionFlag->false ) StandardToolSet class>>handleError: Receiver: StandardToolSet Arguments and temporary variables: anError: MessageNotUnderstood: UndefinedObject>>notEmpty Receiver's instance variables: superclass: Object methodDict: a MethodDictionary() format: 0 instanceVariables: nil organization: ('as yet unclassified') subclasses: {CommandLineToolSet . DebuggerTestsToolSet} name: #StandardToolSet classPool: nil sharedPools: nil environment: Smalltalk category: #'Tools-Base' ToolSet class>>handleError: Receiver: ToolSet Arguments and temporary variables: anError: MessageNotUnderstood: UndefinedObject>>notEmpty ctx: nil ts: StandardToolSet Receiver's instance variables: superclass: AppRegistry methodDict: a MethodDictionary() format: 0 instanceVariables: nil organization: ('as yet unclassified') subclasses: nil name: #ToolSet classPool: nil sharedPools: nil environment: Smalltalk category: #'System-Applications' registeredClasses: an OrderedCollection(StandardToolSet CommandLineToolSet) default: StandardToolSet UnhandledError>>defaultAction Receiver: UnhandledError: Arguments and temporary variables: ts: ToolSet Receiver's instance variables: messageText: nil tag: nil signalContext: UnhandledError(Exception)>>signal handlerContext: nil outerContext: nil exception: MessageNotUnderstood: UndefinedObject>>notEmpty UndefinedObject>>handleSignal: Receiver: nil Arguments and temporary variables: exception: UnhandledError: Receiver's instance variables: nil UnhandledError(Exception)>>signal Receiver: UnhandledError: Arguments and temporary variables: Receiver's instance variables: messageText: nil tag: nil signalContext: UnhandledError(Exception)>>signal handlerContext: nil outerContext: nil exception: MessageNotUnderstood: UndefinedObject>>notEmpty --- The full stack --- MorphicProject>>suspendProcessForDebug MVCProject(Project)>>enterForEmergencyRecovery Project class>>tryOtherProjectForRecovery: MorphicProject(Project)>>primitiveError: MorphicProject(Project)>>recursiveError: MorphicProject>>recursiveError: StandardToolSet class>>handleRecursiveError: ToolSet class>>handleRecursiveError: Debugger class>>openOn:context:label:contents:fullView: StandardToolSet class>>debugProcess:context:label:contents:fullView: ToolSet class>>debugProcess:context:label:contents:fullView: Process>>debug:title:full:contents: Process>>debug:title:full: Process>>debug:title: StandardToolSet class>>handleError: ToolSet class>>handleError: UnhandledError>>defaultAction UndefinedObject>>handleSignal: UnhandledError(Exception)>>signal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - UnhandledError class>>signalForException: MessageNotUnderstood(Error)>>defaultAction MessageNotUnderstood>>defaultAction UndefinedObject>>handleSignal: MessageNotUnderstood(Exception)>>signal UndefinedObject(Object)>>doesNotUnderstand: #notEmpty BadClass>>hasContentsInExplorer ObjectExplorerWrapper>>hasContents IndentingListItemMorph>>hasToggle IndentingListItemMorph>>drawLinesToFirstChildOn:lineColor: IndentingListItemMorph>>drawLinesOn:lineColor:indentThreshold: [] in [] in PluggableTreeMorph(SimpleHierarchicalListMorph)>>drawLinesOn: Array(SequenceableCollection)>>do: TransformMorph(Morph)>>submorphsDo: [] in PluggableTreeMorph(SimpleHierarchicalListMorph)>>drawLinesOn: FormCanvas>>transformBy:clippingTo:during:smoothing: PluggableTreeMorph(SimpleHierarchicalListMorph)>>drawLinesOn: PluggableTreeMorph(SimpleHierarchicalListMorph)>>drawOn: FormCanvas(Canvas)>>draw: FormCanvas(Canvas)>>drawMorph: PluggableTreeMorph(Morph)>>fullDrawOn: FormCanvas(Canvas)>>fullDraw: FormCanvas(Canvas)>>fullDrawMorph: [] in [] in PluggableSystemWindow(Morph)>>drawSubmorphsOn: Array(SequenceableCollection)>>reverseDo: [] in PluggableSystemWindow(Morph)>>drawSubmorphsOn: PluggableSystemWindow(Morph)>>drawSubmorphsOn: PluggableSystemWindow(Morph)>>fullDrawOn: FormCanvas(Canvas)>>fullDraw: FormCanvas(Canvas)>>fullDrawMorph: [] in [] in HandMorph(Morph)>>drawSubmorphsOn: Array(SequenceableCollection)>>reverseDo: [] in HandMorph(Morph)>>drawSubmorphsOn: HandMorph(Morph)>>drawSubmorphsOn: [] in HandMorph>>updateCacheCanvas: FormCanvas>>translateBy:during: HandMorph>>updateCacheCanvas: HandMorph>>fullDrawOn: FormCanvas(Canvas)>>fullDraw: FormCanvas(Canvas)>>fullDrawMorph: [] in WorldState>>displayWorld:submorphs: OrderedCollection>>reverseDo: -- and more not shown -- |
In reply to this post by David T. Lewis
Am So., 23. Feb. 2020 um 18:25 Uhr schrieb David T. Lewis <[hidden email]>:
> > I should add that you can evaluate "MVCProject new beTopProject" to > add an MVC project to support emergency recovery. > Thank you for the hint. It kind of worked and went back to the MVC project, but the screen was not redrawn. So at first it looked like Squeak was frozen, until I impatiently clicked around. After the second click, the MVC debugger appeared on top of the Morphic project rendering. Then I could also open the main menu with another click on the background, but it seemed to leave graphical artifacts behind. Even after "restore display" the MVC project behaved kind of odd. Opening the menu and clicking on an item opened another menu, and most of the menus seems to leave graphical artifacts behind. See the attached screenshots. |
Hi Jakob,
thanks for the description, now I can reproduce the issue in a fresh image:
c := Object newSubclass.
c compile: 'hasContentsInExplorer self error'.
{c new} "explore it into hand"
Interestingly, my (modified) main image does not crash in this example but spawns two debuggers instead. I will have to investigate this :D
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von Jakob Reschke <[hidden email]>
Gesendet: Sonntag, 23. Februar 2020 19:38:12 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] Emergency evaluator due to MNU in hasContentsInExplorer Am So., 23. Feb. 2020 um 18:25 Uhr schrieb David T. Lewis <[hidden email]>:
> > I should add that you can evaluate "MVCProject new beTopProject" to > add an MVC project to support emergency recovery. > Thank you for the hint. It kind of worked and went back to the MVC project, but the screen was not redrawn. So at first it looked like Squeak was frozen, until I impatiently clicked around. After the second click, the MVC debugger appeared on top of the Morphic project rendering. Then I could also open the main menu with another click on the background, but it seemed to leave graphical artifacts behind. Even after "restore display" the MVC project behaved kind of odd. Opening the menu and clicking on an item opened another menu, and most of the menus seems to leave graphical artifacts behind. See the attached screenshots.
Carpe Squeak!
|
Ah yes, I got it. Your DNU bug raises a recursive error in MorphicDebugger class >> #openOn:context:label:contents:fullView:, in the ui block, when drawing the hand via #displayWorld. At the moment, this error recursion is not detected, so in a fresh trunk image, the UI process will hang. No idea why your image did not? I already proposed a fix for this in Morphic-ct.1610 (inbox). If you load it (don't forget to load System-ct.1130 before), you should get a recursion error instead. I think under these circumstances, this should be expected behavior? Von: Squeak-dev <[hidden email]> im Auftrag von Thiede, Christoph
Gesendet: Sonntag, 23. Februar 2020 19:46:44 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] Emergency evaluator due to MNU in hasContentsInExplorer Hi Jakob,
thanks for the description, now I can reproduce the issue in a fresh image:
c := Object newSubclass.
c compile: 'hasContentsInExplorer self error'.
{c new} "explore it into hand"
Interestingly, my (modified) main image does not crash in this example but spawns two debuggers instead. I will have to investigate this :D
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von Jakob Reschke <[hidden email]>
Gesendet: Sonntag, 23. Februar 2020 19:38:12 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] Emergency evaluator due to MNU in hasContentsInExplorer Am So., 23. Feb. 2020 um 18:25 Uhr schrieb David T. Lewis <[hidden email]>:
> > I should add that you can evaluate "MVCProject new beTopProject" to > add an MVC project to support emergency recovery. > Thank you for the hint. It kind of worked and went back to the MVC project, but the screen was not redrawn. So at first it looked like Squeak was frozen, until I impatiently clicked around. After the second click, the MVC debugger appeared on top of the Morphic project rendering. Then I could also open the main menu with another click on the background, but it seemed to leave graphical artifacts behind. Even after "restore display" the MVC project behaved kind of odd. Opening the menu and clicking on an item opened another menu, and most of the menus seems to leave graphical artifacts behind. See the attached screenshots.
Carpe Squeak!
|
Free forum by Nabble | Edit this page |