[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

transforming classpath with soot (again)



Hi,

Below is a mail I sent to the sablevm-developer ML.  I am forwarding
it here because Etienne suggested it and said he was confused by the
attempt to transform [Ljava.lang.Object.

Soot 2.1.0
Jikes 1.19
Classpath 0.08+sablevm changes

Just an easy way to tell Soot not to try and transform array classes
would be great.

Cheers,
Chris

----- Forwarded message from Chris Pickett <chris.pickett@mail.mcgill.ca> -----

Date: Sun, 18 Apr 2004 16:28:07 -0400
From: Chris Pickett <chris.pickett@mail.mcgill.ca>
To: sablevm-developer <sablevm-developer@lists.sourceforge.net>
Subject: transforming classpath with soot (again)
User-Agent: Mutt/1.5.6i

Hi,

I updated my sablevm-classpath to the version in staging, and also
merged changes from sablevm in staging into my tree.  Transforming
classpath now fails, whereas it was working before.

Attached is the output of

tofu ~/temp/share/sablevm/sablevm-classpath $ echo HelloWorld \
> `cat library_classes` | xargs transform-full

where library_classes is a space separated list of all 2665 classpath
classes.  It aborts trying to transform [C and [Ljava.lang.Object
(understandably).  HelloWorld is there so that Soot has a main class;
it doesn't affect the transformed library.

What I don't understand is why this fails now, whereas it didn't
before, and whether it's a problem with Soot, Jikes, my code, or
Classpath.  Some comments as to what I might try and / or possible
explanations for the above would be greatly appreciated.

Thanks,
Chris

Soot started on Sun Apr 18 16:13:14 EDT 2004
Transforming HelloWorld... 
Transforming java.lang.Object... 
Transforming java.lang.StringBuffer... 
Transforming java.lang.Throwable... 
Transforming java.lang.System... 
Transforming java.lang.Class... 
Exception in thread "main" java.lang.RuntimeException: 
Aborting: can't find classfile[Ljava.lang.Object;
	at soot.Scene.getSootClass(Scene.java:300)
	at soot.coffi.CFG.generateJimple(CFG.java:4434)
	at soot.coffi.CFG.jimplify(CFG.java:1463)
	at soot.coffi.CFG.jimplify(CFG.java:1126)
	at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:98)
	at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:79)
	at soot.SootMethod.retrieveActiveBody(SootMethod.java:274)
	at soot.PackManager.runBodyPacks(PackManager.java:477)
	at soot.PackManager.runBodyPacks(PackManager.java:318)
	at soot.PackManager.runPacks(PackManager.java:278)
	at soot.Main.run(Main.java:180)
	at soot.Main.main(Main.java:154)
	at EnableSpmt.main(EnableSpmt.java:31)
Soot started on Sun Apr 18 16:13:27 EDT 2004
Transforming java.util.Collections$SynchronizedRandomAccessList... 
Transforming java.util.Collections$SynchronizedList... 
Transforming java.util.RandomAccess... 
Transforming java.util.List... 
Transforming java.util.Collections... 
Transforming java.lang.Object... 
Transforming java.util.Collections$SynchronizedCollection... 
Transforming java.util.Collections$SynchronizedListIterator... 
Transforming java.util.Collection... 
Transforming java.util.ListIterator... 
Transforming java.util.Iterator... 
Transforming java.util.Set... 
Transforming java.util.Map... 
Transforming java.util.Collections$ReverseComparator... 
Transforming java.util.Random... 
Transforming java.lang.Class... 
Exception in thread "main" java.lang.RuntimeException: 
Aborting: can't find classfile[Ljava.lang.Object;
	at soot.Scene.getSootClass(Scene.java:300)
	at soot.coffi.CFG.generateJimple(CFG.java:4434)
	at soot.coffi.CFG.jimplify(CFG.java:1463)
	at soot.coffi.CFG.jimplify(CFG.java:1126)
	at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:98)
	at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:79)
	at soot.SootMethod.retrieveActiveBody(SootMethod.java:274)
	at soot.PackManager.runBodyPacks(PackManager.java:477)
	at soot.PackManager.runBodyPacks(PackManager.java:318)
	at soot.PackManager.runPacks(PackManager.java:278)
	at soot.Main.run(Main.java:180)
	at soot.Main.main(Main.java:154)
	at EnableSpmt.main(EnableSpmt.java:31)
Soot started on Sun Apr 18 16:13:36 EDT 2004
Transforming java.nio.channels.NoConnectionPendingException... 
Transforming java.lang.IllegalStateException... 
Transforming java.lang.RuntimeException... 
Transforming java.lang.String... 
Exception in thread "main" java.lang.RuntimeException: 
Aborting: can't find classfile[C
	at soot.Scene.getSootClass(Scene.java:300)
	at soot.coffi.CFG.generateJimple(CFG.java:4434)
	at soot.coffi.CFG.jimplify(CFG.java:1463)
	at soot.coffi.CFG.jimplify(CFG.java:1126)
	at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:98)
	at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:79)
	at soot.SootMethod.retrieveActiveBody(SootMethod.java:274)
	at soot.PackManager.runBodyPacks(PackManager.java:477)
	at soot.PackManager.runBodyPacks(PackManager.java:318)
	at soot.PackManager.runPacks(PackManager.java:278)
	at soot.Main.run(Main.java:180)
	at soot.Main.main(Main.java:154)
	at EnableSpmt.main(EnableSpmt.java:31)
Soot started on Sun Apr 18 16:13:44 EDT 2004
Transforming java.rmi.activation.ActivationInstantiator... 
Transforming java.lang.Object... 
Transforming java.rmi.Remote... 
Transforming java.rmi.activation.ActivationID... 
Transforming java.rmi.activation.ActivationDesc... 
Transforming java.rmi.MarshalledObject... 
Transforming java.rmi.activation.ActivationException... 
Transforming java.rmi.RemoteException... 
Transforming java.lang.System... 
Transforming java.lang.StringBuffer... 
Transforming java.lang.Class... 
Exception in thread "main" java.lang.RuntimeException: 
Aborting: can't find classfile[Ljava.lang.Object;
	at soot.Scene.getSootClass(Scene.java:300)
	at soot.coffi.CFG.generateJimple(CFG.java:4434)
	at soot.coffi.CFG.jimplify(CFG.java:1463)
	at soot.coffi.CFG.jimplify(CFG.java:1126)
	at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:98)
	at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:79)
	at soot.SootMethod.retrieveActiveBody(SootMethod.java:274)
	at soot.PackManager.runBodyPacks(PackManager.java:477)
	at soot.PackManager.runBodyPacks(PackManager.java:318)
	at soot.PackManager.runPacks(PackManager.java:278)
	at soot.Main.run(Main.java:180)
	at soot.Main.main(Main.java:154)
	at EnableSpmt.main(EnableSpmt.java:31)
Soot started on Sun Apr 18 16:13:54 EDT 2004
Transforming javax.swing.table.DefaultTableModel... 
Transforming javax.swing.table.AbstractTableModel... 
Transforming java.io.Serializable... 
Transforming java.util.Vector... 
Exception in thread "main" java.lang.RuntimeException: 
Aborting: can't find classfile[Ljava.lang.Object;
	at soot.Scene.getSootClass(Scene.java:300)
	at soot.coffi.CFG.generateJimple(CFG.java:4434)
	at soot.coffi.CFG.jimplify(CFG.java:1463)
	at soot.coffi.CFG.jimplify(CFG.java:1126)
	at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:98)
	at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:79)
	at soot.SootMethod.retrieveActiveBody(SootMethod.java:274)
	at soot.PackManager.runBodyPacks(PackManager.java:477)
	at soot.PackManager.runBodyPacks(PackManager.java:318)
	at soot.PackManager.runPacks(PackManager.java:278)
	at soot.Main.run(Main.java:180)
	at soot.Main.main(Main.java:154)
	at EnableSpmt.main(EnableSpmt.java:31)


----- End forwarded message -----