[Pkg] The Trunk: Morphic-eem.746.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Oct 6 20:11:07 UTC 2014


Eliot Miranda uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-eem.746.mcz

==================== Summary ====================

Name: Morphic-eem.746
Author: eem
Time: 6 October 2014, 1:09:34.182 pm
UUID: c9ae704e-6a58-40b8-a998-72392d0cff6e
Ancestors: Morphic-ul.745

Fix debugging of optimized expressions.

=============== Diff against Morphic-ul.745 ===============

Item was changed:
  ----- Method: TextEditor>>debug:receiver:in: (in category 'do-its') -----
  debug: aCompiledMethod receiver: anObject in: evalContext
  
+ 	| guineaPig debugger debuggerWindow context |
- 	| guineaPig debugger context |
  	guineaPig := [
  		aCompiledMethod
  			valueWithReceiver: anObject
  			 arguments: (evalContext ifNil: [ #() ] ifNotNil: [ { evalContext } ]) ] newProcess.
  	context := guineaPig suspendedContext.
  	debugger := Debugger new
  		process: guineaPig
  		controller: nil
  		context: context.
+ 	debuggerWindow := debugger openFullNoSuspendLabel: 'Debug it'.
+ 	"Now step into the expression.  But if it is quick (is implemented as a primtiive, e.g. `0')
+ 	 it will return immediately back to the block that is sent newProcess above.  Guard
+ 	 against that with the check for home being thisContext."
+ 	[debugger interruptedContext method == aCompiledMethod]
+ 		whileFalse:
+ 			[debugger interruptedContext home == thisContext ifTrue:
+ 				[debuggerWindow delete.
+ 				 UIManager default inform: 'Nothing to debug; expression is optimized'.
+ 				 ^self].
+ 			debugger send]!
- 	debugger openFullNoSuspendLabel: 'Debug it'.
- 	[ debugger interruptedContext method == aCompiledMethod ]
- 		whileFalse: [ debugger send ]!



More information about the Packages mailing list