[Soot-list] Odd TypeException when using use-original-names:true
Steffen Pingel
steffenp at gmx.de
Sun Jan 15 21:08:16 EST 2006
Hi,
when I am running Soot with these arguments
-f j -p jb use-original-names:true polyglot.ext.jl.types.PrimitiveType_c
using the polyglotclasses-1.3.2.jar from the Soot download page, I get a
TypeException [1] when numericConversionValidImpl(java.lang.Object) is
transformed.
If I don't include the -p argument everything is fine. After recompiling
polyglot from source (with JDK 5.0_06) Soot runs flawlessly with the -p
argument.
The local variable table (dumped by javap -l) for numericConversionValidImpl()
looks like this in the downloaded jar:
Start Length Slot Name Signature
37 3 2 v J
56 3 2 v J
0 186 0 this Lpolyglot/ext/jl/types/PrimitiveType_c;
0 186 1 value Ljava/lang/Object;
And like this in the self-compiled jar (identical, except that it an
additional entry):
LocalVariableTable:
Start Length Slot Name Signature
37 3 2 v J
56 3 2 v J
0 186 0 this Lpolyglot/ext/jl/types/PrimitiveType_c;
0 186 1 value Ljava/lang/Object;
61 125 2 v J
I am not sure though if this really is a bug or just a "broken" jar.
Steffen
[1] Exception in thread "main" java.lang.RuntimeException:
soot.jimple.toolkits.typing.TypeException:
soot.jimple.toolkits.typing.ConstraintChecker$RuntimeTypeException: Type
Error(12)
at
soot.jimple.toolkits.typing.ConstraintChecker.error(ConstraintChecker.java:78)
at
soot.jimple.toolkits.typing.ConstraintChecker.caseAssignStmt(ConstraintChecker.java:564)
at soot.jimple.internal.JAssignStmt.apply(JAssignStmt.java:222)
at
soot.jimple.toolkits.typing.ConstraintChecker.check(ConstraintChecker.java:56)
at
soot.jimple.toolkits.typing.TypeResolver.check_and_fix_constraints(TypeResolver.java:843)
at soot.jimple.toolkits.typing.TypeResolver.resolve_step_3
(TypeResolver.java:316)
at
soot.jimple.toolkits.typing.TypeResolver.resolve(TypeResolver.java:205)
at
soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:57)
at soot.BodyTransformer.transform(BodyTransformer.java:51)
at soot.Transform.apply(Transform.java:104)
at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:70)
at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:93)
at soot.Pack.apply(Pack.java:120)
at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:115)
at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:80)
at soot.SootMethod.retrieveActiveBody(SootMethod.java:304)
at soot.PackManager.retrieveAllBodies(PackManager.java:727)
at soot.PackManager.runPacks(PackManager.java:306)
at soot.Main.run(Main.java:179)
at soot.Main.main(Main.java:153)
at
soot.jimple.toolkits.typing.ConstraintChecker.check(ConstraintChecker.java:64)
at
soot.jimple.toolkits.typing.TypeResolver.check_and_fix_constraints(TypeResolver.java:843)
at soot.jimple.toolkits.typing.TypeResolver.resolve_step_3
(TypeResolver.java:316)
at
soot.jimple.toolkits.typing.TypeResolver.resolve(TypeResolver.java:205)
at
soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:57)
at soot.BodyTransformer.transform(BodyTransformer.java:51)
at soot.Transform.apply(Transform.java:104)
at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:70)
at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:93)
at soot.Pack.apply(Pack.java:120)
at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:115)
at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:80)
at soot.SootMethod.retrieveActiveBody(SootMethod.java:304)
at soot.PackManager.retrieveAllBodies(PackManager.java:727)
at soot.PackManager.runPacks(PackManager.java:306)
at soot.Main.run(Main.java:179)
at soot.Main.main(Main.java:153)
at
soot.jimple.toolkits.typing.TypeResolver.resolve(TypeResolver.java:213)
at
soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:57)
at soot.BodyTransformer.transform(BodyTransformer.java:51)
at soot.Transform.apply(Transform.java:104)
at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:70)
at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:93)
at soot.Pack.apply(Pack.java:120)
at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:115)
at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:80)
at soot.SootMethod.retrieveActiveBody(SootMethod.java:304)
at soot.PackManager.retrieveAllBodies(PackManager.java:727)
at soot.PackManager.runPacks(PackManager.java:306)
at soot.Main.run(Main.java:179)
at soot.Main.main(Main.java:153)
--
Steffen Pingel - steffenp at gmx.de - http://steffenpingel.de
More information about the Soot-list
mailing list