[Soot-list] Exceptions in IFDS Analysis

Marc-André Laverdière-Papineau marc-andre.laverdiere-papineau at polymtl.ca
Fri Apr 5 16:35:41 EDT 2013


Hello,

I have been getting this problem only recently, and I am not sure what I 
am doing wrong.

I am getting exceptions like these:

Exception in thread "pool-2-thread-1" java.lang.NullPointerException
	at 
com.google.common.base.Preconditions.checkNotNull(Preconditions.java:191)
	at com.google.common.cache.LocalCache.get(LocalCache.java:3989)
	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
	at 
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
	at 
com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4884)
	at 
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getOrCreateUnitGraph(JimpleBasedInterproceduralCFG.java:174)
	at 
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.isExitStmt(JimpleBasedInterproceduralCFG.java:199)

and

Exception in thread "main" java.lang.NullPointerException
	at 
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getMethodOf(JimpleBasedInterproceduralCFG.java:163)
	at 
soot.jimple.toolkits.ide.icfg.JimpleBasedInterproceduralCFG.getMethodOf(JimpleBasedInterproceduralCFG.java:65)
	at heros.solver.IDESolver.setVal(IDESolver.java:576)

Digging a bit, I am seeing that unitToOwner returns null in this chunk 
of code, when u is an IdentityStmt.

	@Override
	public boolean isExitStmt(Unit u) {
		Body body = unitToOwner.get(u);
		DirectedGraph<Unit> unitGraph = getOrCreateUnitGraph(body);
		return unitGraph.getTails().contains(u);
	}

Even when I breakpoint and look down in the trace, I am unable to 
determine where it is coming from, or why is it that a given method is 
analyzed or not. You can say that troubleshooting is hard :(

Has anybody else ever dealt with this? How did you fix it?

P.S. I am running with some exclusions and -no-bodies-for-excluded
P.P.S I tried feeding all the units in the application classes in 
unitToOwner and I'm still hitting this problem.

Regards,

-- 
Marc-André Laverdière-Papineau
Doctorant - PhD Candidate


More information about the Soot-list mailing list