soot-oss / soot

Soot - A Java optimization framework
GNU Lesser General Public License v2.1
2.86k stars 705 forks source link

NullPointerException occurred when using soot command-line tool. #1848

Closed fade03 closed 2 years ago

fade03 commented 2 years ago

Hi, I have trouble when using soot 2.5.0 command-line tool to get Jimple from Java source file.

My Configuration and command line:

alias soot='java -jar ~/Public/Tools/soot-2.5.0.jar'
---------------------------------------------------
~/Desktop/WorkSpace/coding/Java/JavaStuff/src/main/java/framework/soot/guide/sample/
❯ soot -cp . -f J Foo

Exception in thread "main" java.lang.NullPointerException
        at soot.JastAddInitialResolver.resolveFromJavaFile(JastAddInitialResolver.java:103)
        at soot.JavaClassSource.resolve(JavaClassSource.java:57)
        at soot.SootResolver.bringToHierarchy(SootResolver.java:215)
        at soot.SootResolver.bringToSignatures(SootResolver.java:239)
        at soot.SootResolver.processResolveWorklist(SootResolver.java:154)
        at soot.SootResolver.resolveClass(SootResolver.java:124)
        at soot.Scene.loadClass(Scene.java:448)
        at soot.Scene.loadClassAndSupport(Scene.java:433)
        at soot.Scene.loadNecessaryClass(Scene.java:1053)
        at soot.Scene.loadNecessaryClasses(Scene.java:1067)
        at soot.Main.run(Main.java:167)
        at soot.Main.main(Main.java:141)

Foo.java:

package framework.soot.guide.sample;

public class Foo {
    public static void main(String[] args) {
        Foo f = new Foo();
        int a = 7;
        int b = 14;
        int x = (f.bar(21) + a) * b;
    }

    public int bar(int n) {
        return n + 42;
    }
}

My platform are JDK8u302 and MacOS 12.3 arm64, tks.

fade03 commented 2 years ago

I have solved this problem by building release Soot on my own machine.

alias soot='java -jar your-soot-path/target/sootclasses-trunk-jar-with-dependencies.jar'

It works now:

0BB2EAA1A506107544668F215D6595E2

jpstotz commented 2 years ago

@F4ded For other people who have the same problem it may be good to mention which version/commit/branch/tag you have checked out for building.

fade03 commented 2 years ago

@F4ded For other people who have the same problem it may be good to mention which version/commit/branch/tag you have checked out for building.

Thank you for your reminder, I build the Soot with Tag 4.2.1