[Pharo-dev] Unexpected block variable change of value

Max Leske maxleske at gmail.com
Mon Nov 11 12:17:53 EST 2013


Not sure if it’s related to your issue but I’ve been seeing swapped temporary variables in the debugger. The value used for execution is correct but in the view two variables will have the value of the other.
Are you sure that the value *effectively* changes or could it be a visualization problem?

Max

On 11.11.2013, at 17:29, btc at openinworld.com wrote:

> I'm not sure if I'm missing something, but there seems some strange behavior that I don't understand.  The value of a block variable changes when stepping over a method that acts on that variable.  I encountered this in Spec, but that seems co-incidental to the behaviour. 
> SETUP
> 1. The attached "My-Spec-Tutorial-BenComan.1.mcz" (i.e. Bahman's tutorial) was loaded into build #30564.
> 
> 2. A breakpoint was inserted after the first "e generateArguments" in...
> SpecRowLayout>>privateAsArray
>   | result shouldCheckSplitters |
>   result := OrderedCollection new.
>   shouldCheckSplitters := false.         (self commands reject: [:e | e isSplitter ]) do: [:e |
>   ...lots..hidden.for..conciseness....
>       e generateArguments.
>       self haltOnce. "<------------------"
>       e asSpecElements do: [:el |
>           result add: el ]].
> 
> 3. The following was evaluated...
>   Halt enableHaltOnce.
>   MyFirstWindow new openWithSpec: #defaultSpec.
> 
> 
> OBSERVATION
> 1. When the debugger opened at the breakpoint
> e = a SpecLayoutAdd
> 
> 2. But after stepping over #asSpecElements
> e = an OrderedCollection()
> 
> So how did the value of 'e' change?
> 
> Where...
> SpecLayoutAdd(SpecLayoutSend)>>asSpecElements
>   ^ {self selector.}, self arguments
> 
> SpecLayoutAdd(SpecLayoutSend)>>selector
>   ^ selector
> 
> SpecLayoutAdd(SpecLayoutSend)>>arguments
>   ^ arguments
> 
> 
> This was on Windows 7.  Since files.pharo.org is offline, I wasn't able to try a newer VM. My current was...
> 
> NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.18 uuid: a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013
> NBCogit NativeBoost-CogPlugin-EstebanLorenzano.18 uuid: a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013
> git://gitorious.org/cogvm/blessed.git Commit: 412abef33cbed05cf1d75329e451d71c0c6aa5a7 Date: 2013-03-13 17:48:50 +0100 By: Esteban Lorenzano <estebanlm at gmail.com> Jenkins build #14535
> 
> Win32 built on Mar 13 2013 18:49:42 Compiler: 4.6.2
> VMMaker versionString git://gitorious.org/cogvm/blessed.git Commit: 412abef33cbed05cf1d75329e451d71c0c6aa5a7 Date: 2013-03-13 17:48:50 +0100 By: Esteban Lorenzano <estebanlm at gmail.com> Jenkins build #14535
> NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.18 uuid: a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013
> NBCogit NativeBoost-CogPlugin-EstebanLorenzano.18 uuid: a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013
> 
> cheers -ben
> 
> <My-Spec-Tutorial-BenComan.1.mcz>





More information about the Pharo-dev mailing list