[Soot-list] Question about CallGraph
Thanh Son IT
thanhson at saigonpostel.com.vn
Sun Jan 21 21:16:09 EST 2007
Hi,
I'm using Soot verison 2.2.3.
I want add a Transformer into user-define Pack "wjtp".
--------------------------------------------
/* Usage: java Main [soot-options] appClass
*/
/* import necessary soot packages */
import soot.*;
import java.io.*;
public class Main {
public static void main(String[] args) {
/* check the arguments */
if (args.length == 0) {
System.err.println("Usage: java Main [options] classname");
System.exit(0);
}
/* add a phase to transformer pack by call Pack.add */
PackManager.v().getPack("wjtp").add(new Transform("wjtp.name",stm123.v()));
/* Give control to Soot to process all options,
* InvokeStaticInstrumenter.internalTransform will get called.
*/
soot.Main.main(args);
}
}
--------------------------------------------------------------
import soot.*;
import soot.jimple.*;
import soot.util.*;
import java.util.*;
import java.io.*;
class stm123 extends SceneTransformer{
private static stm123 instance = new stm123();
private stm123() {}
public static stm123 v() { return instance; }
protected void internalTransform(String phaseName, Map options)
{
//options.v().set_whole_program(true);
//CHATransformer.v().transform();
//CallGraph cg = Scene.v().getCallGraph();
//System.out.println(cg.size());
System.out.println("test");
}
}
-----------------------------------------------------------------------
import java.io.*;
class aaa {
public static void main(String[] arg) {
UI ui = new TextUI();
ui.display("Hello World");
}
}
-----------------------------------------------------------------------------
When I use command:
> java Main -w aaa
the following error occured:
Soot started on Mon Jan 22 08:58:59 ICT 2007
Exception in thread "main" java.lang.ClassCastException: soot.coffi.CONSTANT_Class_info
at soot.coffi.Util.addAnnotations(Util.java:980)
at soot.coffi.Util.addAnnotationVisibilityAttribute(Util.java:942)
at soot.coffi.Util.resolveFromClassFile(Util.java:409)
at soot.CoffiClassSource.resolve(CoffiClassSource.java:37)
at soot.SootResolver.bringToHierarchy(SootResolver.java:148)
at soot.SootResolver.bringToSignatures(SootResolver.java:172)
at soot.SootResolver.bringToBodies(SootResolver.java:214)
at soot.SootResolver.processResolveWorklist(SootResolver.java:100)
at soot.SootResolver.resolveClass(SootResolver.java:89)
at soot.Scene.tryLoadClass(Scene.java:298)
at soot.Scene.loadBasicClasses(Scene.java:848)
at soot.Scene.loadNecessaryClasses(Scene.java:874)
at soot.Main.run(Main.java:170)
at soot.Main.main(Main.java:146)
at Main.main(Main.java:40)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20070122/48e528cd/attachment.htm
More information about the Soot-list
mailing list