Re: [abc-users] Unwoven Jimple in ReweavingAnalysis

From: Nathan Weston <npweston_at_gmail.com>
Date: Thu, 24 Apr 2008 15:49:22 +0100

That's superb - many thanks, Eric.

Nath

Eric Bodden wrote:
>> As perhaps another option, I'm performing a stage of the analysis
>> pre-weave (extending OncePass and adding in after JIMPLIFY_DONE) in
>> order to get the Jimple code of the advices before they're woven. Is
>> it possible to automatically obtain advice shadows at this stage? I
>> strongly suspect it isn't, but it's worth a shot :)
>
> No the easier way to do this is to perform the main analysis after
> weaving, i.e. as a ReweavingAnalysis and just refer to the older,
> unwoven, method bodies, which are stored in the Unweaver.
>
> You can access the Unweaver using:
> abc.main.Main.v().getAbcExtension().getWeaver().getUnweaver()
>
> Unfortunately I just saw that the Unweaver used to store all this
> information but it did not expose it to the user/extender. Therefore I
> have just added the following methods to the SVN version of Unweaver:
>
> getOldApplicationClasses()
> getOldBodyForMethod(SootMethod)
> getOldFieldsForClass(SootClass)
> getOldInterfacesOfClass(SootClass)
> getOldMethodsForClass(SootClass)
> getOldParameterListForMethod(SootMethod)
>
> Our SVN version can be obtained by checking out this URL (just in case
> you are not using it already):
> http://abc.comlab.ox.ac.uk/products/trunk/abc-full
>
> Note that you can map between individual Units(Stmts), Traps or Locals
> from before and after weaving using:
> abc.weaving.weaver.Weaver.rebind(Object)
>
> abc.weaving.weaver.Weaver.reverseRebind(Object)
>
> (see documentation there)
>
> Hoe that helps.
>
> Eric
>
Received on Thu Apr 24 2008 - 15:49:28 BST

This archive was generated by hypermail 2.2.0 : Tue Apr 29 2008 - 13:00:12 BST