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)
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 thejtp
phase