[Soot-list] Question about soot's dataflow analysis

Eric Bodden bodden at st.informatik.tu-darmstadt.de
Mon Jan 18 02:50:15 EST 2010


Hello again. In my opinion, Soot actually gives the "more correct"
semantics with respect to defs and uses. An expression like "array[i]"
uses "array" (to access the array's i-th element) but defines
"array[i]". This is exactly what the Jimple code shows.

Eric

--
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/1/18 Sai Zhang <racezhang at gmail.com>:
>
> Hi all:
>
> I found sometimes Soot's data flow analysis framework could not achieve
> expected "accuracy".
>
> For example, if I want to know the "Def-Use" variables involved in the
> following statement:
>
> array[i] = k;
>
> The def var should be : array[]
> and the use var should be: k
>
> However, soot will transform bytecode to the following jimple:
>  ....
>        $r9 = r0.<BinaryHeap: java.lang.Comparable[] array>;
>         $r10 = r0.<BinaryHeap: java.lang.Comparable[] array>;
>         $r11 = $r10[i1];
>         $r9[i0] = $r11;
> .....
>
> Thus, the use var become "array", which seems to  contradict the fact.
>
> I am wondering is there any better way to reserve such "def-use" relations
> in soot?
>
> thanks
>
> -Sai
>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
>


More information about the Soot-list mailing list