>
> I've attached a ContextPart>>errorReportOn:  we use to print more  
> information, the current one dates from the last decade of the last  
> century and really
> provides too little data on the instance variables and stack size.   
> For example if we could see all of files: we chould see if the  
> pier.changes file is  there.
>>>>
>>>>
>
>
> ContextPart>>errorReportOn: strm
>       "Write a detailed error report on the stack (above me) on a  
> stream.  For both the error file, and emailing a bug report.   
> Suppress any errors while getting printStrings.  Limit the length."
>
>       | cnt aContext startPos |
>       strm print: Date today; space; print: Time now; cr.
>       strm cr.
>       strm nextPutAll: 'VM: ';
>               nextPutAll:  SmalltalkImage current platformName asString;
>               nextPutAll: ' - ';
>               nextPutAll: SmalltalkImage current platformSubtype asString;
>               nextPutAll: ' - ';
>               nextPutAll: SmalltalkImage current osVersion asString;
>               nextPutAll: ' - ';
>               nextPutAll: SmalltalkImage current vmVersion asString;
>               cr.
>       strm nextPutAll: 'Image: ';
>               nextPutAll:  SystemVersion current version asString;
>               nextPutAll: ' [';
>               nextPutAll: SmalltalkImage current lastUpdateString asString;
>               nextPutAll: ']';
>               cr.
>       strm cr.
>       SecurityManager default printStateOn: strm.
>       
>       "Note: The following is an open-coded version of  
> ContextPart>>stackOfSize: since this method may be called during a  
> low space condition and we might run out of space for allocating the  
> full stack."
>       cnt := 0.  startPos := strm position.
>       aContext := self.
>       [aContext notNil and: [(cnt := cnt + 1) < 40]] whileTrue:
>               [aContext printDetails: strm.   "variable values"
>               strm cr.
>               aContext := aContext sender].
>
>       strm cr; nextPutAll: '--- The full stack ---'; cr.
>       aContext := self.
>       cnt := 0.
>       [aContext == nil] whileFalse:
>               [cnt := cnt + 1.
>               cnt = 40 ifTrue: [strm nextPutAll: ' - - - - - - - - - - - - - 
> - -  
> - - - - - - - - - - - - - - - - - -'; cr].
>               strm print: aContext; cr.  "just class>>selector"       
>
>               strm position > (startPos+150000) ifTrue: [strm nextPutAll:  
> '...etc...'.
>                       ^ self].        "exit early"
>               cnt > 200 ifTrue: [strm nextPutAll: '-- and more not shown --'. 
>  ^  
> self].
>               aContext := aContext sender].
>
>
>
> _______________________________________________
> Magritte, Pier and Related Tools ...
> https://www.iam.unibe.ch/mailman/listinfo/smallwiki


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to