Scene.v().loadNecessaryClasses();
Scene.v().loadNecessaryClasses(); for (SootMethod method : sootClass.getMethods()) { for (Map.Entry<String, String> entry : map.getValue().entrySet()) {
Scene.v().loadNecessaryClasses(); for (SootMethod method : sootClass.getMethods()) {
Scene.v().loadNecessaryClasses();
} else Options.v().set_src_prec(Options.src_prec_class); Scene.v().loadNecessaryClasses();
Scene.v().loadNecessaryClasses();
Scene.v().loadNecessaryClasses(); logger.info("Basic class loading done.");
@Override protected void initializeAnalysis(A commandLineArguments) { addSceneTransformer(); Options.v().set_no_bodies_for_excluded(true); Options.v().set_allow_phantom_refs(true); Options.v().set_output_format(Options.output_format_none); Options.v().set_whole_program(true); Options.v().set_soot_classpath( commandLineArguments.getInput() + File.pathSeparator + commandLineArguments.getClasspath()); Options.v().setPhaseOption("cg.spark", "on"); // do not merge variables (causes problems with PointsToSets) Options.v().setPhaseOption("jb.ulp", "off"); // Options.v().setPhaseOption("jb.ne", "off"); Options.v().setPhaseOption("jb.uce", "remove-unreachable-traps:true"); Options.v().setPhaseOption("cg", "trim-clinit:false"); Options.v().set_prepend_classpath(true); Options.v().set_src_prec(Options.src_prec_java); for (String analysisClass : AnalysisParameters.v().getAnalysisClasses()) { SootClass sootClass = Scene.v().loadClassAndSupport(analysisClass); Scene.v().forceResolve(analysisClass, SootClass.BODIES); sootClass.setApplicationClass(); } Scene.v().loadNecessaryClasses(); Scene.v().setMainClassFromOptions(); Scene.v().setEntryPoints(EntryPoints.v().application()); }