[Soot-list] First Use Point of an invocation

Amir Mehrabi mehrabi at comp.iust.ac.ir
Tue Jun 15 11:48:58 EDT 2010


Hi Eric.
CombinedDUAnalysis return true statment in simple program as seen in your 
simple program but in situation like this:
...
a=object.invoke(params..)
loop {
....
loop {
....
loop {
....
b=a
}
}
c=a
}
this analysis can't find true statment. is there any other analysis in soot 
framework to do this like CombinedDUAnalysis?

thanks for your helping
Amir Mehrabi-Jorshary
Iran University of Science and Technology

-----Original Message-----

From: Eric Bodden <bodden at st.informatik.tu-darmstadt.de>

To: Amir Mehrabi <mehrabi at comp.iust.ac.ir>

Cc: soot-list at sable.mcgill.ca

Date: Tue, 15 Jun 2010 11:04:44 +0200

Subject: Re: [Soot-list] First Use Point of an invocation




Hi Amir.



Can you try to describe your problem in other words? I am not sure if

I understand your problem.



In general, is CombinedDUAnalysis really what you are looking for?



What if your method's code looks like this? ...



1: a=object.invokeA(params...);

2: b=a;

3: anotherObject.invokeB(b);



in this case, do you want the analysis to return statement 2 or

statement 3? (I am pretty sure that CombinedDUAnalysis would return

statement 2, because it is the first statement that "uses" a.)



Eric



--

Dr. Eric Bodden

Software Technology Group, Technische Universität Darmstadt, Germany

Tel: +49 6151 16-5478    Fax: +49 6151 16-5410

Mailing Address: S2|02 A209, Hochschulstraße 10, 64289 Darmstadt







2010/6/14 Amir Mehrabi <mehrabi at comp.iust.ac.ir>:

>

>  Hi all

> I use CombinedDUAnalysis to finding first use point of an invocation.

> for example:

>

>  10.    a=object.invokeA(params...);

>  20.   ...

>  30.    ...

>  40.    anotherObject.invokeB(a);                      <= first use point 
of

> invocation A

>  50.   ...

>

> to find first use point at line number 40, I use CombinedDUAnalysis like

> this:

>         // stmt is equivalent of invocation A in  jimple

>         UnitGraph graph = new ExceptionalUnitGraph(body);

>         CombinedDUAnalysis anlysis = (CombinedDUAnalysis)

> CombinedDUAnalysis.v(graph);

>         uses = anlysis.getUsesOf(stmt);

> but the problem is if there is more than one invocation that interleaved

> this method does not work!!!

> and cannot FIRST use point

>

> Does any one knows why?

>

> Regards

> Amir Mehrabi-Jorshary

> Iran University of Science and Technology

>

>

> _______________________________________________

> Soot-list mailing list

> Soot-list at sable.mcgill.ca

> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list 
[http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list]

>

>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20100615/99d993aa/attachment.html 


More information about the Soot-list mailing list