[Soot-list] Base of array reference is not an array Exception

Heejong Lee heejong at gmail.com
Mon Mar 19 23:57:44 EDT 2012


Hi, Eric.

Yes, maybe you are right.
Actually, the target bytecode is generated from
dalvik bytecode with some type inference.

Could you give me a hint about exactly what type
inconsistency throws the following exception in Soot?
Or if there is a related paper describing fast type
inference algorithm currently used in Soot, I can
investigate it myself.

Thanks!

-- Heejong


On Mon, Mar 5, 2012 at 11:55 PM, Eric Bodden <eric.bodden at ec-spride.de> wrote:
> Hello Heejong.
>
> My suspicion would just be that your bytecode is damaged for some reason.
>
> Eric
>
> On 6 March 2012 01:21, Heejong Lee <heejong at gmail.com> wrote:
>> Hi all,
>> I've encountered a following exception:
>>
>>> java -jar soot-2.5.0.jar -cp . org.xbill.DNS.spi.DNSJavaNameService -pp
>> Exception in thread "main" java.lang.RuntimeException: Base of array
>> reference is not an array!
>>        at soot.jimple.toolkits.typing.fast.AugEvalFunction.eval_(AugEvalFunction.java:177)
>>        at soot.jimple.toolkits.typing.fast.AugEvalFunction.eval(AugEvalFunction.java:41)
>>        at soot.jimple.toolkits.typing.fast.TypeResolver.applyAssignmentConstraints(TypeResolver.java:407)
>>        at soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:113)
>>        at soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:101)
>>        at soot.BodyTransformer.transform(BodyTransformer.java:51)
>>        at soot.Transform.apply(Transform.java:104)
>>        at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:66)
>>        at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:89)
>>        at soot.Pack.apply(Pack.java:124)
>>        at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:117)
>>        at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:89)
>>        at soot.SootMethod.retrieveActiveBody(SootMethod.java:322)
>>        at soot.jimple.toolkits.annotation.LineNumberAdder.internalTransform(LineNumberAdder.java:44)
>>        at soot.PackManager.runPacks(PackManager.java:332)
>>        at soot.Main.run(Main.java:198)
>>        at soot.Main.main(Main.java:141)
>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>        at java.lang.reflect.Method.invoke(Method.java:616)
>>        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
>>
>> You can regenerate the exception with attached class file.
>> I suspect there is something wrong in lcas_(BytecodeHierarchy.java) method
>> but I could not solve the problem further because I have limited knowledge about
>> typing mechanism in soot.
>>
>> Does anyone help me to solve this problem?
>>
>> Thanks,
>>
>> --
>> Heejong Lee
>>
>> Associate Research Engineer
>> Program Analysis Division
>> Fasoo.com, Inc. (www.spa-arrow.com)
>>
>> _______________________________________________
>> Soot-list mailing list
>> Soot-list at sable.mcgill.ca
>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>>
>
>
>
> --
> Eric Bodden, Ph.D., http://bodden.de/
> Head of Secure Software Engineering Group at EC SPRIDE
> Principal Investigator in Secure Services at CASED
> Tel: +49 6151 16-75422    Fax: +49 6151 16-72051
> Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt



-- 
Heejong Lee

Associate Research Engineer
Program Analysis Division
Fasoo.com, Inc. (www.spa-arrow.com)


More information about the Soot-list mailing list