soot-oss / soot

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

Skip analysis for erroring functions #2013

Open adityavardhanpadala opened 10 months ago

adityavardhanpadala commented 10 months ago

Is there a way to make soot ignore the analysis and continue with next method when it encounters an error while lifting a specific method.

For instance I get this error when I am trying to analyse a program with a BodyTransformer in the jtp phase

[Thread-19] ERROR heros.solver.CountingThreadPoolExecutor - Worker thread execution failed: Warning: Bad use of class type at $r4[$i2] = $r3 in <com.huawei.hms.scankit.aiscan.common.D: com.huawei.hms.scankit.aiscan.common.z[] a(com.huawei.hms.scankit.aiscan.common.z[],int,int,double[])>
Warning: Bad use of class type at $r4[$i2] = $r3 in <com.huawei.hms.scankit.aiscan.common.D: com.huawei.hms.scankit.aiscan.common.z[] a(com.huawei.hms.scankit.aiscan.common.z[],int,int,double[])>
    at soot.validation.CheckTypesValidator.checkCopy(CheckTypesValidator.java:211)
    at soot.validation.CheckTypesValidator.validate(CheckTypesValidator.java:69)
    at soot.Body.validate(Body.java:298)
    at soot.jimple.JimpleBody.validate(JimpleBody.java:128)
    at soot.jimple.JimpleBody.validate(JimpleBody.java:114)
    at soot.PackManager.runBodyPacks(PackManager.java:995)
    at soot.PackManager.lambda$runBodyPacks$0(PackManager.java:667)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.lang.Thread.run(Thread.java:833)
Exception in thread "main" Warning: Bad use of class type at $r4[$i2] = $r3 in <com.huawei.hms.scankit.aiscan.common.D: com.huawei.hms.scankit.aiscan.common.z[] a(com.huawei.hms.scankit.aiscan.common.z[],int,int,double[])>
    at soot.validation.CheckTypesValidator.checkCopy(CheckTypesValidator.java:211)
    at soot.validation.CheckTypesValidator.validate(CheckTypesValidator.java:69)
    at soot.Body.validate(Body.java:298)
    at soot.jimple.JimpleBody.validate(JimpleBody.java:128)
    at soot.jimple.JimpleBody.validate(JimpleBody.java:114)
    at soot.PackManager.runBodyPacks(PackManager.java:995)
    at soot.PackManager.lambda$runBodyPacks$0(PackManager.java:667)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.lang.Thread.run(Thread.java:833)
Exception in thread "Thread-19" Warning: Bad use of class type at $r4[$i2] = $r3 in <com.huawei.hms.scankit.aiscan.common.D: com.huawei.hms.scankit.aiscan.common.z[] a(com.huawei.hms.scankit.aiscan.common.z[],int,int,double[])>
    at soot.validation.CheckTypesValidator.checkCopy(CheckTypesValidator.java:211)
    at soot.validation.CheckTypesValidator.validate(CheckTypesValidator.java:69)
    at soot.Body.validate(Body.java:298)
    at soot.jimple.JimpleBody.validate(JimpleBody.java:128)
    at soot.jimple.JimpleBody.validate(JimpleBody.java:114)
    at soot.PackManager.runBodyPacks(PackManager.java:995)
    at soot.PackManager.lambda$runBodyPacks$0(PackManager.java:667)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.lang.Thread.run(Thread.java:833)