[Soot-list] problems with Paddle's precision

Eric Bodden eric.bodden at mail.mcgill.ca
Thu Jan 18 08:16:34 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?

No, not really. That's exactly what this option does. You cannot assign any names without this packing procedure. The reason for that is that local variables do not exist in bytecode. Hence, Soot has no other way than trying to reconstruct them from stack locations. Soot assumes that the same stack locations refer to the same variable. In some subtle cases as the one you showed, this assumption does apparently not hold. I personally do not see any way to get around this.

> 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
> >
> >
> >
> >
> >
> >
> >
> _______________________________________________
> 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