>
> 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 [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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 > [hidden email] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
Free forum by Nabble | Edit this page |