[Soot-list] Incomplete CallGraph

qpj 412832527 at qq.com
Fri Jul 11 11:12:41 EDT 2014


Hi All,
When I use 
Iterator<MethodOrMethodContext> targets = new Targets(cg.edgesOutOf(sm));
I found sm do not have any targets if sm is a method came from a class whose name contains $(like cz.romario.opensudoku.gui.FileListActivity$2).
			
My code:
for(SootClass sootClass:Scene.v().getClasses()){
	if(sootClass.getName().startsWith("cz.romario.opensudoku.gui.FileListActivity")){				
		innList.add(sootClass);
	}	
}
for(SootClass sc:innList){
	for(SootMethod sm:sc.getMethods()){
		Iterator<MethodOrMethodContext> targets = new Targets(cg.edgesOutOf(sm));
		System.out.println(sm+":");
		while(targets.hasNext())
		      System.out.println(targets.next());
	}
}‍

My result:
<cz.romario.opensudoku.gui.FileListActivity: void onCreate(android.os.Bundle)>:
targetMethod:<java.io.File: void <clinit>()>
targetMethod:<java.lang.StringBuilder: java.lang.String toString()>
targetMethod:<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>
targetMethod:<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>
targetMethod:<java.lang.StringBuilder: void <init>(java.lang.String)>
targetMethod:<java.util.Date: void <init>(long)>
targetMethod:<java.io.File: long lastModified()>
targetMethod:<java.io.File: java.lang.String getName()>‍



<cz.romario.opensudoku.gui.FileListActivity$2: void <init>(cz.romario.opensudoku.gui.FileListActivity)>:
targetMethod:<java.lang.Object: void <init>()>
<cz.romario.opensudoku.gui.FileListActivity$2: boolean accept(java.io.File)>:
no targets.


<cz.romario.opensudoku.gui.FileListActivity$3: void <init>(cz.romario.opensudoku.gui.FileListActivity)>:
targetMethod:<java.lang.Object: void <init>()>
<cz.romario.opensudoku.gui.FileListActivity$3: void onClick(android.content.DialogInterface,int)>:
no targets.


As you can see:
1. In cz.romario.opensudoku.gui.FileListActivity, I can get all targets of onCreate(). ‍

2. In cz.romario.opensudoku.gui.FileListActivity$2 and ‍cz.romario.opensudoku.gui.FileListActivity$3, I cannot get any targets from accept() and onClick().‍
Do any one meet with this problem before? 
Best Regard.


Xiangxing
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20140711/1947566b/attachment.html 


More information about the Soot-list mailing list