[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