[squeak-dev] The Inbox: Tools-ul.357.mcz

Tobias Pape Das.Linux at gmx.de
Sun May 29 18:47:03 UTC 2011


Just out of curiosity:
why guineaPig ?

Best
	-Tobias

Am 2011-05-29 um 17:51 schrieb commits at source.squeak.org:

> A new version of Tools was added to project The Inbox:
> http://source.squeak.org/inbox/Tools-ul.357.mcz
> 
> ==================== Summary ====================
> 
> Name: Tools-ul.357
> Author: ul
> Time: 29 May 2011, 7:51:18.372 pm
> UUID: 9b7529a4-621a-0440-b9aa-3d99daefe41e
> Ancestors: Tools-ul.356
> 
> Don't install doits into MethodDictionaries.
> 
> =============== Diff against Tools-ul.356 ===============
> 
> Item was changed:
>  ----- Method: ParagraphEditor>>debug:receiver:in: (in category '*Tools') -----
>  debug: aCompiledMethod receiver: anObject in: evalContext
> 
> + 	| guineaPig debugger context |
> + 	guineaPig := [
> + 		anObject "Use primitive 188, because primitive 189 escapes the debugger somehow."
> + 			withArgs: (evalContext ifNil: [ #() ] ifNotNil: [ { evalContext } ])
> + 			executeMethod: aCompiledMethod ] newProcess.
> - 	| selector guineaPig debugger context |
> - 	selector := evalContext isNil ifTrue: [#DoIt] ifFalse: [#DoItIn:].
> - 	anObject class addSelectorSilently: selector withMethod: aCompiledMethod.
> - 	guineaPig := evalContext isNil
> - 		ifTrue: [[anObject DoIt] newProcess]
> - 		ifFalse: [[anObject DoItIn: evalContext] newProcess].
>  	context := guineaPig suspendedContext.
>  	debugger := Debugger new
>  		process: guineaPig
>  		controller: ((Smalltalk isMorphic not and: [ScheduledControllers inActiveControllerProcess])
>  				ifTrue: [ScheduledControllers activeController]
>  				ifFalse: [nil])
>  		context: context.
>  	debugger openFullNoSuspendLabel: 'Debug it'.
>  	[debugger interruptedContext method == aCompiledMethod]
> + 		whileFalse: [debugger send]!
> - 		whileFalse: [debugger send].
> - 	anObject class basicRemoveSelector: selector!
> 
> 




More information about the Squeak-dev mailing list