The Trunk: Kernel-mtf.526.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Kernel-mtf.526.mcz

commits-2
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].
  !