[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