[Soot-list] problems with Paddle's precision

Raul Santelices raul at cc.gatech.edu
Wed Jan 17 18:53:50 EST 2007


I see. If 'use-original-names' is off, there is no other way in which I 
can retrieve the original names for Locals?
If not, I suppose that the structure of the jimple output will be the 
same with and without 'use-original-names' on. If that is the case, I 
could try running Soot with and without the setting, so I can map the 
jimple var names to the original names...

Raul


Eric Bodden wrote:
> When you use the original names option, Soot tries to reconstruct the original local variables from stack locations and then assigns them the original name. This is done in  something called a "local variable packer" or similar.
>
> This packer leads to the fact that those assignments in the original Jimple code...
>
>         $r5 = new Test;
>         r3 = $r5;
>         $r6 = new Test;
>         $r7 = new Test;
>
> ... are now done on the same stack location/variable $r1, because the packer eagerly packed those three locations into one:
>
>         $r1 = new Test;
>         foo = $r1;
>         $r1 = new Test;
>         $r1 = new Test;
>
> Since paddle is flow-insensitive, this makes all three allocation sites end up in the point-to set of foo, while on the original code only the first did, because it was the only one being aliased with foo.
>
> I think there is no easy way to get around this in the packer, so you might just want to disable the original variable names option in this case.
>
> Ondrej, should Soot issue a warning if this parameter combination is used?
>
> Eric
>
> --
> Eric Bodden
> Sable Research Group, McGill University
> Montréal, Québec, Canada
>
>
>
>
>
>
>   


More information about the Soot-list mailing list