[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