[Soot-list] Wrong jimple code

Zeinab Lashkaripour lashkaripour at yahoo.com
Sun Jun 23 08:09:21 EDT 2013


Thanks for your reply Marc-André,

> Are you putting the virtual invoke in an assign statement?

These jimples are generated by Soot. 
Previously they were in the form of "temp$29 = vir....." therefore I got the results as I wanted but, now they are in the form of :
    virtualinvoke temp$29.<java.lang.StringBuffer: java.lang.StringBuffer>append(java.lang.Object)>("value1") 

Maybe this is a sort of optimization as you said but, I don't want to have such an optimization. 
Is there a way to disable such optimizations?


Regards,
Zeinab


________________________________
 From: Marc-André Laverdière <marc-andre.laverdiere-papineau at polymtl.ca>
To: Zeinab Lashkaripour <lashkaripour at yahoo.com>; Zeinab Lashkaripour <lashkaripour at yahoo.com>; "soot-list at sable.mcgill.ca" <soot-list at sable.mcgill.ca> 
Sent: Sunday, June 23, 2013 3:32 PM
Subject: Re: [Soot-list] Wrong jimple code
 

Hi

Are you putting the virtual invoke in an assign statement?

Anyways, this could be an optimization. String buffers are made to return the same object, so maybe the assignments are optimized away. Did you check with javap for a similar chunk of code?
-- 
Marc-André Laverdière
PhD Candidate - Doctorant
Sent from a mobile device - please excuse the brevity

Zeinab Lashkaripour <lashkaripour at yahoo.com> wrote:
>Hi everyone,
>
>I have the issue mentioned below that needs your guidance.
>
>Previously I had no problem and the jimple body was ok, but now I have
>the problem that the virtualinvokes are not generated properly as shown
>in [1]. They should be in the form of: 
>
>           temp$29 = vir..... . 
>
>My comman line options are:
>"-p", "jb", "use-original-names:true",
>
>"-p", "tag.ln", "enabled",
>"-keep-line-number",
>"-src-prec", "java",
>"-validate",
>"-cp", "...",
>
>"-f", "class", "--app"
>
>I should mention that I remember no specific change that I have made
>except using soot-develop instead of soot-2.5.0 and using Aggregator
>for my methods body. (although I think these should not be the problem)
>
>Could anyone guide me? I would be very glad to hear your suggestions.
>
>Regards,
>Zeinab
>
>[1]:
>
>temp$29 = new java.lang.StringBuffer
>specialinvoke temp$29.<java.lang.StringBuffer: void <init>()>()
>virtualinvoke temp$29.<java.lang.StringBuffer: java.lang.StringBuffer
>append(java.lang.Object)>("value1")
>virtualinvoke temp$29.<java.lang.StringBuffer: java.lang.StringBuffer
>append(java.lang.Object)>(var)
>virtualinvoke temp$29.<java.lang.StringBuffer: java.lang.StringBuffer
>append(java.lang.Object)>("value2")
>var = virtualinvoke temp$29.<java.lang.StringBuffer: java.lang.String
>toString()>()
>
>------------------------------------------------------------------------
>
>_______________________________________________
>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/20130623/1f7aecad/attachment.html 


More information about the Soot-list mailing list