--- Begin Message ---> On 23 Nov 2018, at 15:19, Marcus Denker <marcus.den...@inria.fr> wrote: > > > >> On 23 Nov 2018, at 14:59, Marcus Denker <marcus.den...@inria.fr> wrote: >> >> >> >>> On 23 Nov 2018, at 13:40, Manuel Leuenberger <leuenber...@inf.unibe.ch> >>> wrote: >>> >>> Hi, >>> >>> I stumbled upon another MetaLink scenario that I am unsure how to >>> implement. I want to track method invocations, with receiver, arguments, >>> selector, and return value (maybe even signaled exception). I can track the >>> method input with a MetaLink installed on an RBMethodNode like this: >>> >>> MetaLink new >>> metaObject: [ :c | Transcript show: c receiver; show: c method selector; >>> show: c arguments; cr ]; >>> selector: #value:; >>> arguments: #(context). >>> >>> and for returns with a MetaLink on RBReturnNodes like this: >>> >>> MetaLink new >>> metaObject: [ :v | Transcript show: v; cr ]; >>> selector: #value:; >>> arguments: #(value) >>> >>> The problem is though, that not all methods have explicit returns, and some >>> mix explicit returns and self returns. I tried installed an #after MetaLink >>> on a RBMethodNode, but this fails in many cases. Is there any way that I >>> can instrument a method and track receiver, selector, arguments, and >>> returned value (even if self) at the same time? >>> >> >> I am working now on making the #after work so that one can get with #value >> the return of the method… >> >> I now have a version where it works for Message Sends correctly *and* were >> #after on Method works better (the compilation errors should be fixed). >> >> But #value for #after on Method needs some more work… soon! >>#value for methods should now work with this PR loaded: https://github.com/pharo-project/pharo/pull/2012 <https://github.com/pharo-project/pharo/pull/2012> This is implemented by compiling a wrapped method for #after (just as we do for primitives). Marcus
--- End Message ---
Re: [Pharo-users] Tracking method in and out with MetaLinks
Marcus Denker via Pharo-users Mon, 26 Nov 2018 07:42:39 -0800
- [Pharo-users] Tracking method in and out wit... Manuel Leuenberger
- Re: [Pharo-users] Tracking method in an... Marcus Denker
- Re: [Pharo-users] Tracking method i... Manuel Leuenberger
- Re: [Pharo-users] Tracking method i... Marcus Denker
- Re: [Pharo-users] Tracking meth... Marcus Denker via Pharo-users
- Re: [Pharo-users] Tracking meth... Marcus Denker