Hi
In the past it was possible to step throw such code and now we cannot anymore because of a smart trick. I should say that I hate when we break the reachibility and understandibility of the system. So why I cannot get a debugger opens after the halt: ? How do I get that ? Now I will put traces: super cool! Stef doesNotUnderstand: aMessage "support sending message to access properties" | selector | selector := aMessage selector. self halt: aMessage selector. ^ selector isUnary ifTrue: [ (self hasPropertyAt: selector) ifTrue: [ self propertyAt: aMessage selector asSymbol ] ifFalse: [ super doesNotUnderstand: aMessage ] ] ifFalse: [ selector numArgs = 1 ifTrue: [ self propertyAt: aMessage selector allButLast asSymbol put: aMessage argument ] ifFalse: [ super doesNotUnderstand: aMessage ] ] |
Hi,
I am not quite sure where the issue is because I cannot seem to reproduce the problem. I try this Playground script: Object subclass: #ABC instanceVariableNames: '' classVariableNames: '' package: 'ABC'. ABC compile: 'doesNotUnderstand: aMessage "support sending message to access properties" | selector | selector := aMessage selector. self halt: aMessage selector. ^ selector isUnary ifTrue: [ (self hasPropertyAt: selector) ifTrue: [ self propertyAt: aMessage selector asSymbol ] ifFalse: [ super doesNotUnderstand: aMessage ] ] ifFalse: [ selector numArgs = 1 ifTrue: [ self propertyAt: aMessage selector allButLast asSymbol put: aMessage argument ] ifFalse: [ super doesNotUnderstand: aMessage ] ]'. ABC new bla. And I get a debugger. What am I missing? Cheers, Doru > On May 13, 2017, at 6:05 PM, Stephane Ducasse <[hidden email]> wrote: > > Hi > > In the past it was possible to step throw such code and now we cannot anymore > because of a smart trick. I should say that I hate when we break the reachibility and understandibility of the system. > So why I cannot get a debugger opens after the halt: ? > How do I get that ? > > Now I will put traces: super cool! > > Stef > > doesNotUnderstand: aMessage > "support sending message to access properties" > > | selector | > selector := aMessage selector. > self halt: aMessage selector. > ^ selector isUnary > ifTrue: [ (self hasPropertyAt: selector) > ifTrue: [ self propertyAt: aMessage selector asSymbol ] > ifFalse: [ super doesNotUnderstand: aMessage ] ] > ifFalse: [ selector numArgs = 1 > ifTrue: [ self propertyAt: aMessage selector allButLast asSymbol put: aMessage argument ] > ifFalse: [ super doesNotUnderstand: aMessage ] ] -- www.tudorgirba.com www.feenk.com “Live like you mean it." |
In fact my test was broken an in addition the debugger does not show the top frame and it took me a while to see that I should always scroll to be the stack. And I was always only seeing this mustBeABoolean. On Sat, May 13, 2017 at 9:17 PM, Tudor Girba <[hidden email]> wrote: Hi, |
I also have to scroll up to see the last frame (Pharo 5.0). Phil On Sat, May 13, 2017 at 9:27 PM, Stephane Ducasse <[hidden email]> wrote:
|
Yes this is super annoying because I get really confused On Sat, May 13, 2017 at 11:10 PM, [hidden email] <[hidden email]> wrote:
|
Free forum by Nabble | Edit this page |