[Soot-list] It seems to be a problem with Dava Decompile App on nested loops

Prof. Laurie HENDREN hendren at cs.mcgill.ca
Wed Nov 23 13:20:19 EST 2011


Hi Cristina,

Dava is not quite as solid as other bits of Soot,  but it still usually 
works for simple programs.   Are you running it on the for loop exactly 
as you gave it?    If so,  where is x defined?

Can you give exactly the input Java code you are giving,  and also the 
jimple that is generated?

Thanks, Laurie

+--------------------------------------------------------------
| Laurie Hendren --- http://www.sable.mcgill.ca/~hendren
| Associate Dean (Academic), Faculty of Science
| Professor, School of Computer Science, McGill University
| New McLAB Research Project: http://www.sable.mcgill.ca/mclab
| Other Proj: www.sable.mcgill.ca/soot  www.sable.mcgill.ca/abc
+--------------------------------------------------------------


On 11-11-23 11:01 AM, Eric Bodden wrote:
> Hi Cristina.
>
> Yes, unfortunately, Dava is known to be rather buggy. It's certainly
> much less stable than most other components of Soot. What you are
> seeing clearly is a bug.
>
> Eric
>
> On 23 November 2011 15:39, Cristina Ilie<crysgirlro at yahoo.com>  wrote:
>> Hello,
>> I'm working to a program which add new statements to some methods. At the
>> end I obtain a dava source. I think there is a problem with the nested
>> loops.
>> I just tried Soot->Process corresponding class file->Dava Decompile App on
>> the following code and the resulted code is not correct:
>> "double []a = new double[4];
>> int nx=3, ny=4,i,j;
>> for (j = 0; j<  ny; j++) {
>>            for (i = 0; i<  nx; i++) {
>>                a[i] = x+i;//nx * j + i;
>>            }
>>          }
>>
>>   z = x+a[2];"
>> The resulted code is:
>> double[] r0;
>>          byte b0, b1;
>>          int i2;
>>          double d1;
>>          r0 = new double[4];
>>          b0 = (byte) (byte) 3;
>>          b1 = (byte) (byte) 4;
>>          i2 = 0;
>>
>>          while (i2<  b1)
>>          {
>>
>>              if (0<  b0)
>>              {
>>                  r0[0] = d0 + (double) 0;
>>              }
>>              else
>>              {
>>                  i2++;
>>              }
>>          }
>>
>>          d1 = d0 + r0[2];
>> which is wrong... Is there a bug in soot?
>> Cristina
>> _______________________________________________
>> Soot-list mailing list
>> Soot-list at sable.mcgill.ca
>> 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/20111123/65cf7ded/attachment.html 


More information about the Soot-list mailing list