[Soot-list] Generating callgraph with a custom entry point

ASHISH MISHRA ashish123.mishragkp at gmail.com
Fri Nov 16 04:46:06 EST 2012


Thanks Zell for your response, I checked the CLASSPATH and the PATH, My
system CLASSPATH is not set and the PATH contains the required HOME and
JAVA_HOME paths.

Its working now , thanks a lot




On Fri, Nov 16, 2012 at 2:04 PM, Zhoulai <zell08v at orange.fr> wrote:

> Hi
>
> I guess you should reset your classpath.
>
> You may want to put this line into your java source,
>
>           *  System.out.println( System.getenv("CLASSPATH") ;*
>
> and see whether soot.jimple.toolkits.CallGraph is reachable from the
> printed class path ?
>
> You may also want to check your PATH environment, because you used the
> "-pp" option.
>
> Hope that helps.
>
> Zell.
>
>
> On Thu, Nov 15, 2012 at 7:51 PM, ASHISH MISHRA <
> ashish123.mishragkp at gmail.com> wrote:
>
>> Dear All,
>>
>> I followed the following link on Eric Bodden page for generating call
>> graphs with custom entry points. I also looked on the archives in the
>> mailing list and tried the answers, but I am stuck at the exception-
>>
>>
>> *Exception in thread "main" java.lang.RuntimeException: couldn't find
>> class: CallGraph (is your soot-class-path set properly?)*
>> * at soot.SootResolver.bringToHierarchy(SootResolver.java:205)*
>> * at soot.SootResolver.bringToSignatures(SootResolver.java:239)*
>> * at soot.SootResolver.bringToBodies(SootResolver.java:280)*
>> * at soot.SootResolver.processResolveWorklist(SootResolver.java:153)*
>> * at soot.SootResolver.resolveClass(SootResolver.java:124)*
>> * at soot.Scene.forceResolve(Scene.java:1279)*
>> * at CGGenerate.CallGraphAndroid.main(CallGraphAndroid.java:60)*
>> *
>> *
>> *
>> *
>> *My Transform file is as follows*
>> *
>> *
>> *
>> public class CallGraphAndroid {
>> public static void main(String[] args) {
>>   List<String> argsList = new ArrayList<String>(Arrays.asList(args));
>>  argsList.addAll(Arrays.asList(new String[]{
>>    "-w",
>>    "-pp",
>>    "-soot-class-path",
>>    ".",
>>    "-main-class",
>>    "testers.CallGraphs", //main-class
>>    "testers.CallGraphs",//argument classes
>>    "testers.A" //
>>    }));
>>
>>
>>    PackManager.v().getPack("wjtp").add(new
>> Transform("wjtp.customentrycall", new SceneTransformer() {
>>
>> @Override
>> protected void internalTransform(String phaseName, Map options) {
>>  // TODO Auto-generated method stub
>> //Options.v().parse(args);
>>   CHATransformer.v().transform();
>>         SootMethod src =
>> Scene.v().getMainClass().getMethodByName("doStuff");
>>  CallGraph cg = Scene.v().getCallGraph();
>> Iterator<MethodOrMethodContext> targets = new Targets(cg.edgesOutOf(src));
>>  while (targets.hasNext()) {
>>         SootMethod tgt = (SootMethod)targets.next();
>>         System.out.println(src + " may call " + tgt);
>>    }
>>
>>  }
>> }));
>>    Options.v().parse(args);
>>
>>    SootClass c = Scene.v().forceResolve("CallGraph", SootClass.BODIES);
>>    c.setApplicationClass();
>>    Scene.v().loadNecessaryClasses();
>>    SootMethod m = c.getMethodByName("doStuff");
>>    List entryPoints= new ArrayList();
>>    entryPoints.add(m);
>>    Scene.v().setEntryPoints(entryPoints);
>>    args= argsList.toArray(new String[0]);
>>
>>    //soot.Main.main(args);
>>     PackManager.v().runPacks();
>>
>> }
>> }
>>
>> My input files are under the root directory of the project, so I gave the
>> current directory as the soot-class-path option, which works fine in normal
>> cases of cg with main methods.
>>
>> If some one can tell me where I am going wrong it will be a great help.
>> Browsing the mailing list archives I found that the problem is old and
>> repetitive but couldn't find a solution which works for me.
>>  *
>>
>> --
>> Regards,
>> Ashish Mishra
>> Graduate Student,
>> Computer Science and Automation Department,IISc
>>
>>
>>
>> _______________________________________________
>> Soot-list mailing list
>> Soot-list at sable.mcgill.ca
>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>>
>>
>


-- 
Regards,
Ashish Mishra
Graduate Student,
Computer Science and Automation Department,IISc
Cell : +91-9611194714
Mailto : ashishmishra at csa.iisc.ernet.in
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20121116/b3eb5a3e/attachment.html 


More information about the Soot-list mailing list