public static ZeroXCFABuilder make(Language l, IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache, ContextSelector appContextSelector, SSAContextInterpreter appContextInterpreter, int instancePolicy) throws IllegalArgumentException { if (options == null) { throw new IllegalArgumentException("options == null"); } return new ZeroXCFABuilder(l, cha, options, cache, appContextSelector, appContextInterpreter, instancePolicy); }
public ZeroXCFABuilder(Language l, IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache, ContextSelector appContextSelector, SSAContextInterpreter appContextInterpreter, int instancePolicy) { super(l.getFakeRootMethod(cha, options, cache), options, cache, new DefaultPointerKeyFactory()); ContextSelector def = new DefaultContextSelector(options, cha); ContextSelector contextSelector = appContextSelector == null ? def : new DelegatingContextSelector(appContextSelector, def); setContextSelector(contextSelector); SSAContextInterpreter c = new DefaultSSAInterpreter(options, cache); c = new DelegatingSSAContextInterpreter(ReflectionContextInterpreter.createReflectionContextInterpreter(cha, options, getAnalysisCache()), c); SSAContextInterpreter contextInterpreter = appContextInterpreter == null ? c : new DelegatingSSAContextInterpreter( appContextInterpreter, c); setContextInterpreter(contextInterpreter); ZeroXInstanceKeys zik = makeInstanceKeys(cha, options, contextInterpreter, instancePolicy); setInstanceKeys(zik); }
/** * @param options options that govern call graph construction * @param cha governing class hierarchy * @param scope representation of the analysis scope * @param customSelector user-defined context selector, or null if none * @param customInterpreter user-defined context interpreter, or null if none * @return a 0-CFA Call Graph Builder. * @throws IllegalArgumentException if options is null */ public static SSAPropagationCallGraphBuilder makeZeroCFABuilder(Language l, AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope, ContextSelector customSelector, SSAContextInterpreter customInterpreter) { if (options == null) { throw new IllegalArgumentException("options is null"); } addDefaultSelectors(options, cha); addDefaultBypassLogic(options, scope, Util.class.getClassLoader(), cha); return ZeroXCFABuilder.make(l, cha, options, cache, customSelector, customInterpreter, ZeroXInstanceKeys.NONE); }
public ZeroXCFABuilder(Language l, IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache, ContextSelector appContextSelector, SSAContextInterpreter appContextInterpreter, int instancePolicy) { super(l.getFakeRootMethod(cha, options, cache), options, cache, new DefaultPointerKeyFactory()); ContextSelector def = new DefaultContextSelector(options, cha); ContextSelector contextSelector = appContextSelector == null ? def : new DelegatingContextSelector(appContextSelector, def); setContextSelector(contextSelector); SSAContextInterpreter c = new DefaultSSAInterpreter(options, cache); c = new DelegatingSSAContextInterpreter(ReflectionContextInterpreter.createReflectionContextInterpreter(cha, options, getAnalysisCache()), c); SSAContextInterpreter contextInterpreter = appContextInterpreter == null ? c : new DelegatingSSAContextInterpreter( appContextInterpreter, c); setContextInterpreter(contextInterpreter); ZeroXInstanceKeys zik = makeInstanceKeys(cha, options, contextInterpreter, instancePolicy); setInstanceKeys(zik); }
/** * @param options options that govern call graph construction * @param cha governing class hierarchy * @param scope representation of the analysis scope * @param customSelector user-defined context selector, or null if none * @param customInterpreter user-defined context interpreter, or null if none * @return a 0-CFA Call Graph Builder. * @throws IllegalArgumentException if options is null */ public static SSAPropagationCallGraphBuilder makeZeroCFABuilder(Language l, AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope, ContextSelector customSelector, SSAContextInterpreter customInterpreter) { if (options == null) { throw new IllegalArgumentException("options is null"); } addDefaultSelectors(options, cha); addDefaultBypassLogic(options, scope, Util.class.getClassLoader(), cha); return ZeroXCFABuilder.make(l, cha, options, cache, customSelector, customInterpreter, ZeroXInstanceKeys.NONE); }
/** * @param options options that govern call graph construction * @param cha governing class hierarchy * @param scope representation of the analysis scope * @param customSelector user-defined context selector, or null if none * @param customInterpreter user-defined context interpreter, or null if none * @return a 0-1-CFA Call Graph Builder. * @throws IllegalArgumentException if options is null */ public static SSAPropagationCallGraphBuilder makeVanillaZeroOneCFABuilder(Language l, AnalysisOptions options, IAnalysisCacheView analysisCache, IClassHierarchy cha, AnalysisScope scope, ContextSelector customSelector, SSAContextInterpreter customInterpreter) { if (options == null) { throw new IllegalArgumentException("options is null"); } addDefaultSelectors(options, cha); addDefaultBypassLogic(options, scope, Util.class.getClassLoader(), cha); return ZeroXCFABuilder.make(l, cha, options, analysisCache, customSelector, customInterpreter, ZeroXInstanceKeys.ALLOCATIONS | ZeroXInstanceKeys.CONSTANT_SPECIFIC); }
public static ZeroXCFABuilder make(Language l, IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache, ContextSelector appContextSelector, SSAContextInterpreter appContextInterpreter, int instancePolicy) throws IllegalArgumentException { if (options == null) { throw new IllegalArgumentException("options == null"); } return new ZeroXCFABuilder(l, cha, options, cache, appContextSelector, appContextInterpreter, instancePolicy); }
/** * @param options options that govern call graph construction * @param cha governing class hierarchy * @param scope representation of the analysis scope * @param customSelector user-defined context selector, or null if none * @param customInterpreter user-defined context interpreter, or null if none * @return a 0-1-CFA Call Graph Builder. * @throws IllegalArgumentException if options is null */ public static SSAPropagationCallGraphBuilder makeVanillaZeroOneCFABuilder(Language l, AnalysisOptions options, IAnalysisCacheView analysisCache, IClassHierarchy cha, AnalysisScope scope, ContextSelector customSelector, SSAContextInterpreter customInterpreter) { if (options == null) { throw new IllegalArgumentException("options is null"); } addDefaultSelectors(options, cha); addDefaultBypassLogic(options, scope, Util.class.getClassLoader(), cha); return ZeroXCFABuilder.make(l, cha, options, analysisCache, customSelector, customInterpreter, ZeroXInstanceKeys.ALLOCATIONS | ZeroXInstanceKeys.CONSTANT_SPECIFIC); }
/** * @param options options that govern call graph construction * @param cha governing class hierarchy * @param cl classloader that can find WALA resources * @param scope representation of the analysis scope * @param xmlFiles set of Strings that are names of XML files holding bypass logic specifications. * @return a 0-1-Opt-CFA Call Graph Builder. * @throws IllegalArgumentException if options is null * @throws IllegalArgumentException if xmlFiles == null */ public static SSAPropagationCallGraphBuilder make(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, ClassLoader cl, AnalysisScope scope, String[] xmlFiles, byte instancePolicy) throws IllegalArgumentException { if (xmlFiles == null) { throw new IllegalArgumentException("xmlFiles == null"); } if (options == null) { throw new IllegalArgumentException("options is null"); } Util.addDefaultSelectors(options, cha); for (String xmlFile : xmlFiles) { Util.addBypassLogic(options, scope, cl, xmlFile, cha); } return new ZeroXCFABuilder(Language.JAVA, cha, options, cache, null, null, instancePolicy); }
/** * @param options options that govern call graph construction * @param cha governing class hierarchy * @param scope representation of the analysis scope * @param customSelector user-defined context selector, or null if none * @param customInterpreter user-defined context interpreter, or null if none * @return a 0-1-CFA Call Graph Builder. * @throws IllegalArgumentException if options is null */ public static SSAPropagationCallGraphBuilder makeZeroOneCFABuilder(Language l, AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope, ContextSelector customSelector, SSAContextInterpreter customInterpreter) { if (options == null) { throw new IllegalArgumentException("options is null"); } addDefaultSelectors(options, cha); addDefaultBypassLogic(options, scope, Util.class.getClassLoader(), cha); return ZeroXCFABuilder.make(l, cha, options, cache, customSelector, customInterpreter, ZeroXInstanceKeys.ALLOCATIONS | ZeroXInstanceKeys.SMUSH_MANY | ZeroXInstanceKeys.SMUSH_PRIMITIVE_HOLDERS | ZeroXInstanceKeys.SMUSH_STRINGS | ZeroXInstanceKeys.SMUSH_THROWABLES); }
/** * @param options options that govern call graph construction * @param cha governing class hierarchy * @param cl classloader that can find WALA resources * @param scope representation of the analysis scope * @param xmlFiles set of Strings that are names of XML files holding bypass logic specifications. * @return a 0-1-Opt-CFA Call Graph Builder. * @throws IllegalArgumentException if options is null * @throws IllegalArgumentException if xmlFiles == null */ public static SSAPropagationCallGraphBuilder make(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, ClassLoader cl, AnalysisScope scope, String[] xmlFiles, byte instancePolicy) throws IllegalArgumentException { if (xmlFiles == null) { throw new IllegalArgumentException("xmlFiles == null"); } if (options == null) { throw new IllegalArgumentException("options is null"); } Util.addDefaultSelectors(options, cha); for (String xmlFile : xmlFiles) { Util.addBypassLogic(options, scope, cl, xmlFile, cha); } return new ZeroXCFABuilder(Language.JAVA, cha, options, cache, null, null, instancePolicy); }
public static SSAPropagationCallGraphBuilder makeVanillaZeroOneCFABuilder( AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope, ContextSelector customSelector, SSAContextInterpreter customInterpreter, InputStream summariesStream, MethodSummary extraSummary) { if (options == null) { throw new IllegalArgumentException("options is null"); } Util.addDefaultSelectors(options, cha); // addDefaultBypassLogic(options, scope, Util.class.getClassLoader(), // cha); // addBypassLogic(options, scope, // AndroidAppLoader.class.getClassLoader(), methodSpec, cha); addBypassLogic(options, scope, summariesStream, cha, extraSummary); return ZeroXCFABuilder.make(Language.JAVA, cha, options, cache, customSelector, customInterpreter, ZeroXInstanceKeys.ALLOCATIONS | ZeroXInstanceKeys.CONSTANT_SPECIFIC); }
/** * @param options options that govern call graph construction * @param cha governing class hierarchy * @param scope representation of the analysis scope * @param customSelector user-defined context selector, or null if none * @param customInterpreter user-defined context interpreter, or null if none * @return a 0-1-CFA Call Graph Builder. * @throws IllegalArgumentException if options is null */ public static SSAPropagationCallGraphBuilder makeZeroOneCFABuilder(Language l, AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope, ContextSelector customSelector, SSAContextInterpreter customInterpreter) { if (options == null) { throw new IllegalArgumentException("options is null"); } addDefaultSelectors(options, cha); addDefaultBypassLogic(options, scope, Util.class.getClassLoader(), cha); return ZeroXCFABuilder.make(l, cha, options, cache, customSelector, customInterpreter, ZeroXInstanceKeys.ALLOCATIONS | ZeroXInstanceKeys.SMUSH_MANY | ZeroXInstanceKeys.SMUSH_PRIMITIVE_HOLDERS | ZeroXInstanceKeys.SMUSH_STRINGS | ZeroXInstanceKeys.SMUSH_THROWABLES); }
return ZeroXCFABuilder.make(Language.JAVA, cha, options, cache, customSelector, customInterpreter, ZeroXInstanceKeys.NONE);