[Soot-list] Basic question

Henddher Pedroza hpedro2 at uic.edu
Sun Oct 14 18:05:53 EDT 2012


Hello Eric

The example I cited used addBasicClass(). And yes, I thought of applying 
brute force and adding each class in "android.jar" to the list of soot 
classes before calling loadNecessaryClasses().

But it turned out that this "brute force" approach is equivalent to 
setting soot-classpath containing "android.jar" and "myandroidapp.jar".

Here is my resulting configuration:

Options.v().set_soot_classpath("android.jar:myandroidapp.jar");
Options.v().set_process_dir(Arrays.asList("myandroidapp.jar"));
         Scene.v().loadNecessaryClasses();

And, unfortunately, it exposes the FastHierarchy.isSubclass() issue I 
first reported. So I guess we can now rule out soot-classpath being 
incorrect.

So I am back to square one.

java.lang.NullPointerException
     at soot.FastHierarchy$Interval.isSubrange(FastHierarchy.java:83)
     at soot.FastHierarchy.isSubclass(FastHierarchy.java:151)
     at edu.uic.cs.hpedro2.MiscTest.test_sootclasspath2(MiscTest.java:202)
     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:601)
     at junit.framework.TestCase.runTest(TestCase.java:154)
     at junit.framework.TestCase.runBare(TestCase.java:127)

(I'll reply to my 1st post to stay in topic)

On 10/14/2012 03:59 PM, Eric Bodden wrote:
> Hello.
>
>> Yesterday, I tried this successfully though it would be tedious to specify
>> all classes found in the android.jar (and extensions).
> What do you mean by "specifying all classes"? That's not the idea...
>
> Eric



More information about the Soot-list mailing list