Re: [abc-users] Determine a basic block

From: Julian Tibble <julian.tibble_at_worc.ox.ac.uk>
Date: Tue, 15 Apr 2008 15:07:13 +0100

Hi Amjad,

The best way for us to help you track down the source of the VerifyError
would be for you to compile your test program with:

  abc -ext <your-extension> +soot -f J -soot <your-aspectj-test-files>

The "+soot -f J -soot" option tells soot to output Jimple files, rather
than Java class files. If you email us the .jimple file corresponding to
the class that does not verify then that will give us a much better idea
of what the problem is.

> I still dont have a comprehensive idea on how to extract the runtime
> info. I will very glad if I can get some pointers on this.

The dynamic part of thisJoinPoint is filled in automatically, based on
the values of args(), target() etc. --- which are determined by how the
getArgsContextValues(), getTargetContextValue() etc. methods are
implemented in your BasicBlockShadowMatch class.

The static information is encoded as a string - this string consisists
of several parts fields separated by '-'.
See abc/src/abc/eaj/weaving/matching/CastShadowMatch.java (makeSJPInfo)
and abc/src/abc/eaj/weaving/matching/ExtendedSJPInfo.java

At runtime, thisJoinPointStaticPart is constructed from this string, and
the string is lazily decoded if and when the reflective information is
used. The code for extracting a particular field is already implemented
in SignatureImpl.java in the runtime sources.

See CastSignatureImpl.java for an example of how to extend
SignatureImpl.java to re-use this extraction code for picking out
relevant information.

Hope that helps.
Please do continue to send any further questions to the abc-users list,
Julian
Received on Tue Apr 15 2008 - 15:07:15 BST

This archive was generated by hypermail 2.2.0 : Wed Apr 16 2008 - 21:30:10 BST