Re: [abc-users] Determine a basic block

From: Amjad Nusayr <anusayr_at_cs.nmsu.edu>
Date: Mon, 14 Apr 2008 13:58:21 -0600

Will I guess that its hard to tell where the error is from
java.lang.VerifyError...
So I tried to make changes to my BbsFactory (Basic blocks Factory) in
bbs.runtime.reflect.BbsFactory. and during compilation I got the
following exception.

Caused by: soot.AbstractSootMethodRef$ClassResolutionFailedException:
Class bbs.runtime.reflect.BbsFactory doesn't have method
makeSJP([java.lang.String, org.aspectj.lang.Signature, int, int, int]) :
org.aspectj.lang.JoinPoint$StaticPart; failed to resolve in superclasses
and interfacesLooking in bbs.runtime.reflect.BbsFactory which has
methods.......(etc....).

I dont have a makeSJP method in my factory. I dont know why should I
need one? if I copy and past the makeSJP from the eaj example the code
will compile without any problems but I will get the
java.lang.VerifyError exception at runtime.

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.

Regards
Amjad

Eric Bodden wrote:
> Hi Amjad.
>
> I think I cannot be of much help because I did not design nor
> implement the code in question but I know that the following command
> line option exists that sometimes manages to find ill-generated Jimple
> code at compile time:
>
> -debug doValidate
>
> Eric
>
> On 10/04/2008, Amjad Nusayr <anusayr_at_cs.nmsu.edu> wrote:
>
>> Hi
>> I have created an extension that allows basic blocks to be shadowed, the
>> extension works fine, as Eric said, I created a BlockShadowMatch to do the
>> work. but it seems that I cant get any reflective information working. I
>> have created - in my runtime source - a basic block factory class. and in my
>> BlockShadowMatch.makeSJPInfo, I refer to my BlockSignatureImpl.
>>
>> When I try to access information of the new block joinpoint using
>> thisJoinPoint, abc weaves without any problems, but when I try to run my
>> program, I get the following error.
>>
>> --------------------------------
>> Exception in thread "main" java.lang.VerifyError: (class: Hello, method:
>> <init>
>> signature: ()V) Expecting to find unitialized object on stack
>> ------------------------------------
>>
>> Does anyone know what Im doing wrong?? the new joinpoint works fine
>> elsewise!!
>>
>> Regards
>> Amjad
>>
>>
>>
>>
>>
>> Eric Bodden wrote:
>>
>>
>>> Hi.
>>>
>>> Right now, abc supports has two types for ShadowMatch: StmtShadowMatch
>>> and BodyShadowMatch. You probably want to extend this to also provide
>>> a BlockShadowMatch. Also, you have to create a new subclass of
>>> ShadowType, e.g. BlockShadowType, and register it in:
>>> AbcExtension.listShadowTypes().
>>>
>>> Basic blocks are easy to figure out from Jimple: Just create a new
>>> soot.toolkits.graph.BlockGraph.
>>>
>>> Eric
>>>
>>> On 05/03/2008, Amjad Nusayr <anusayr_at_cs.nmsu.edu> wrote:
>>>
>>>
>>>
>>>> Hi
>>>> Im trying to write an extension where I want to shadow a basic block of
>>>> code, jimple does not have any direct way of doing this, does any body
>>>> have any idea how to achieve this?
>>>>
>>>>
>>>>
>>>> Amjad Nusayr
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>
>
>
Received on Mon Apr 14 2008 - 20:58:31 BST

This archive was generated by hypermail 2.2.0 : Tue Apr 15 2008 - 15:10:11 BST