Matthew Fulmer uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-mtf.526.mcz==================== Summary ====================
Name: Kernel-mtf.526
Author: mtf
Time: 13 December 2010, 1:58:51.198 pm
UUID: 200bb553-0fe3-48d1-bcf1-c7878f09a00f
Ancestors: Kernel-mtf.525
make stack dumps more verbose by printing more stack frames in more detail
Cherrypicked from Cobalt:
Name: Kernel-mtf.40
Author: mtf
Time: 26 June 2009, 6:00:06 pm
UUID: b516a7b4-629c-11de-9e86-001124e29fe6
Ancestors: Kernel-mtf.39
made SqueakDebug* files show much more detail in the stack trace
=============== Diff against Kernel-mtf.525 ===============
Item was changed:
----- Method: ContextPart>>errorReportOn: (in category 'debugger access') -----
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 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) < 20]] whileTrue:
- [aContext notNil and: [(cnt := cnt + 1) < 5]] 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 = 20 ifTrue: [strm nextPutAll: ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'; cr].
- cnt = 5 ifTrue: [strm nextPutAll: ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'; cr].
strm print: aContext; cr. "just class>>selector"
+ strm position > (startPos+40000) ifTrue: [strm nextPutAll: '...etc...'.
- strm position > (startPos+4000) ifTrue: [strm nextPutAll: '...etc...'.
^ self]. "exit early"
cnt > 60 ifTrue: [strm nextPutAll: '-- and more not shown --'. ^ self].
aContext := aContext sender].
!