[Soot-list] Local variable not definitely defined

Bodden, Eric eric.bodden at sit.fraunhofer.de
Fri Jun 28 12:28:46 EDT 2013


This looks odd. Could there be exceptional flows?

Eric

On 27.06.2013, at 20:08, Zeinab Lashkaripour <lashkaripour at yahoo.com> wrote:

> Hi everyone,
> 
> I have the jimple code given below:
> 
> tmpStringBuilder = new java.lang.StringBuilder
> specialinvoke tmpStringBuilder.<java.lang.StringBuilder: void <init>()>()
> tmpStringBuilder = virtualinvoke tmpStringBuilder.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("....")
> tmpStringBuilder = virtualinvoke tmpStringBuilder.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(strValue ))
> dyn = virtualinvoke tmpStringBuilder.<java.lang.StringBuilder: java.lang.String toString()>()
> tmpBoolean = staticinvoke <.......>(dyn, info)
> if tmpBoolean == 0 goto temp$20 = new java.lang.StringBuffer
> strValue = virtualinvoke this.<.....>(...)
> temp$20 = new java.lang.StringBuffer
> specialinvoke temp$20.<java.lang.StringBuffer: void <init>()>()
> virtualinvoke temp$20.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.Object)>("...")
> virtualinvoke temp$20.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.Object)>(strValue)
> virtualinvoke temp$20.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.Object)>("..")
> virtualinvoke temp$20.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.Object)>(".....")
> temp$21 = virtualinvoke temp$20.<java.lang.StringBuffer: java.lang.String toString()>()
> 
> that gives:
> 
> Exception in thread "main" java.lang.RuntimeException: Warning: Local variable strValue not definitely defined at virtualinvoke temp$20.<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.Object)>(strValue) in <....>
>     at soot.Body.checkInit(Body.java:712)
>     at soot.Body.validate(Body.java:235)
>     at soot.jimple.JimpleBody.validate(JimpleBody.java:66)
>     at soot.PackManager.runBodyPacks(PackManager.java:828)
>     at soot.PackManager.runBodyPacks(PackManager.java:510)
>     at soot.PackManager.runBodyPacks(PackManager.java:417)
>     at soot.PackManager.runPacksNormally(PackManager.java:394)
>     at soot.PackManager.runPacks(PackManager.java:335)
>     at soot.Main.run(Main.java:198)
>     at soot.Main.main(Main.java:141)
>     at MyMain.main(MyMain.java:66)
> 
> I even added strValue = "" to my jimple code but I still get the exception.
> Could anyone give me a hint?
> 
> Regards,
> Zeinab
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list

--
Eric Bodden, Ph.D., http://sse.ec-spride.de/ http://bodden.de/
Head of Secure Software Engineering Group at EC SPRIDE
Tel: +49 6151 16-75422    Fax: +49 6151 16-72051
Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt



More information about the Soot-list mailing list