[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