http://code.google.com/p/pharo/issues/detail?id=783

Stef

On Apr 30, 2009, at 10:05 AM, Stéphane Ducasse wrote:

>>
>> 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
>


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

Reply via email to