[Soot-list] Soot enquiries

Eric Bodden bodden at st.informatik.tu-darmstadt.de
Thu Feb 10 03:00:52 EST 2011


Hmmm this seems unusual.

In this case I suspect some subtle bug triggered by your particular
combination of phase options.

Could you post your driver class and full command line here? That
could allow us to reproduce the problem.

Eric

On 9 February 2011 18:23, ikpeme <ikpeme at gatech.edu> wrote:
> Hi Eric
>
> Thank you for your quick response. I ran the command as described and observed that there is no java.lang.CharacterData but I was able to get beyond this problem in a way. I tried running my program on linux and instead got a similar error as the earlier one I sent. The error is shown below:
>
> Exception in thread "main" soot.AbstractSootMethodRef$ClassResolutionFailedException: Class java.lang.CharacterDataLatin1 doesn't have method getType([int]) : int; failed to resolve in superclasses and interfacesLooking in java.lang.CharacterDataLatin1 which has methods []
>
>        at soot.AbstractSootMethodRef.resolve(AbstractSootMethodRef.java:135)
>        at soot.AbstractSootMethodRef.resolve(AbstractSootMethodRef.java:95)
>        at soot.jimple.internal.AbstractInvokeExpr.getMethod(AbstractInvokeExpr.java:54)
>        at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.getImplicitTargets(OnFlyCallGraphBuilder.java:234)
>        at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(OnFlyCallGraphBuilder.java:182)
>        at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables(OnFlyCallGraphBuilder.java:81)
>        at soot.jimple.toolkits.callgraph.CallGraphBuilder.build(CallGraphBuilder.java:84)
>        at soot.jimple.spark.builder.ContextInsensitiveBuilder.build(ContextInsensitiveBuilder.java:80)
>        at soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:83)
>        at soot.SceneTransformer.transform(SceneTransformer.java:39)
>
>
> I ran the javap command and I observed that the rt.jar contains java.lang.CharacterDataLatin1 and that class contains getType. So I am not sure what is going on. I decided to try running my program on a mac and instead I get a completely different error:
>
>
> Exception in thread "main" soot.AbstractSootFieldRef$FieldResolutionFailedException: Class javax.management.openmbean.SimpleType doesn't have field DATE : javax.management.openmbean.SimpleType; failed to resolve in superclasses and interfacesLooking in javax.management.openmbean.SimpleType which has fields [<javax.management.openmbean.SimpleType: long serialVersionUID>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType BIGDECIMAL>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType BIGINTEGER>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType BOOLEAN>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType BYTE>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType CHARACTER>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType DOUBLE>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType FLOAT>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType INTEGER>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType LONG>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType OBJECTNAME>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType SHORT>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType STRING>, <javax.management.openmbean.SimpleType: javax.management.openmbean.SimpleType VOID>, <javax.management.openmbean.SimpleType: int m_hashCode>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$String>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$math$BigDecimal>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$math$BigInteger>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Boolean>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Byte>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Character>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Double>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Float>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Integer>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Long>, <javax.management.openmbean.SimpleType: java.lang.Class class$javax$management$ObjectName>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Short>, <javax.management.openmbean.SimpleType: java.lang.Class class$java$lang$Void>]
> Looking in java.io.Serializable which has fields []
> Looking in javax.management.openmbean.OpenType which has fields [<javax.management.openmbean.OpenType: long serialVersionUID>, <javax.management.openmbean.OpenType: java.lang.String[] ALLOWED_CLASSNAMES>, <javax.management.openmbean.OpenType: java.lang.String className>, <javax.management.openmbean.OpenType: java.lang.String typeName>, <javax.management.openmbean.OpenType: java.lang.String description>, <javax.management.openmbean.OpenType: java.lang.Class class$javax$management$openmbean$CompositeData>, <javax.management.openmbean.OpenType: java.lang.Class class$javax$management$openmbean$TabularData>]
> Looking in java.io.Serializable which has fields []
> Looking in java.lang.Object which has fields []
>
>        at soot.AbstractSootFieldRef.resolve(AbstractSootFieldRef.java:112)
>        at soot.AbstractSootFieldRef.resolve(AbstractSootFieldRef.java:73)
>        at soot.jimple.StaticFieldRef.getField(StaticFieldRef.java:75)
>        at soot.jimple.toolkits.typing.fast.AugEvalFunction.eval_(AugEvalFunction.java:189)
>        at soot.jimple.toolkits.typing.fast.AugEvalFunction.eval(AugEvalFunction.java:41)
>        at soot.jimple.toolkits.typing.fast.TypeResolver.applyAssignmentConstraints(TypeResolver.java:402)
>        at soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:113)
>        at soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:93)
>        at soot.BodyTransformer.transform(BodyTransformer.java:51)
>        at soot.Transform.apply(Transform.java:104)
>        at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:66)
>        at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:89)
>        at soot.Pack.apply(Pack.java:124)
>        at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:117)
>        at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:82)
>        at soot.SootMethod.retrieveActiveBody(SootMethod.java:329)
>        at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(OnFlyCallGraphBuilder.java:181)
>        at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables(OnFlyCallGraphBuilder.java:81)
>        at soot.jimple.toolkits.callgraph.CallGraphBuilder.build(CallGraphBuilder.java:84)
>        at soot.jimple.spark.builder.ContextInsensitiveBuilder.build(ContextInsensitiveBuilder.java:80)
>        at soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:83)
>        at soot.SceneTransformer.transform(SceneTransformer.java:39)
>
> I also checked the class SimpleType in classes.jar (linux equivalent of rt.jar) and found the field DATE. Any help you can offer is greatly appreciated.
>
> Thanks
>
> ----- Original Message -----
> From: "Eric Bodden" <bodden at st.informatik.tu-darmstadt.de>
> To: "ikpeme" <ikpeme at gatech.edu>
> Cc: soot-list at sable.mcgill.ca
> Sent: Wednesday, February 9, 2011 3:17:14 AM
> Subject: Re: Soot enquiries
>
> Hello.
>
>> Hi Eric
>
> There's certainly more people on this list willing to help you out.
>
>> Exception in thread "main" soot.AbstractSootMethodRef$ClassResolutionFailedException: Class java.lang.CharacterData doesn't have method of([int]) : java.lang.CharacterData; failed to resolve in superclasses and interfaces Looking in java.lang.CharacterData which has methods []
>
> Typically you get this exception when using an inconsistent set of
> class files, and because the Java runtime library is usually
> consistent with itself I have actually never seen this issue on a
> java.lang.* class.
>
> What happens when you type the following?
>
> javap -private -classpath <your rt.jar> java.lang.CharacterData
>
> You should be seeing the contents of java.lang.CharacterData. Does the
> method of([int]) show up?
>
> Eric
> --
> Dr. Eric Bodden, http://bodden.de/
> Principal Investigator in Secure Services at CASED
> Coordinator of the CASED Advisory Board of Study Affairs
> PostDoc at Software Technology Group, Technische Universität Darmstadt
> Tel: +49 6151 16-5478    Fax: +49 6151 16-5410
> Mailing Address: S2|02 A209, Hochschulstraße 10, 64289 Darmstadt
>



-- 
Dr. Eric Bodden, http://bodden.de/
Principal Investigator in Secure Services at CASED
Coordinator of the CASED Advisory Board of Study Affairs
PostDoc at Software Technology Group, Technische Universität Darmstadt
Tel: +49 6151 16-5478    Fax: +49 6151 16-5410
Mailing Address: S2|02 A209, Hochschulstraße 10, 64289 Darmstadt


More information about the Soot-list mailing list