@Override public <A, N> void handleFlowOut(FlowAnalysis<N, A> a, N s) { afterEvent(InteractionHandler.v(), a, s); } },
@Override public <A, N> void handleFlowOut(FlowAnalysis<N, A> a, N s) { beforeEvent(InteractionHandler.v(), a, s); } };
InteractionHandler stop(Object s) { InteractionHandler h = InteractionHandler.v(); List<?> stopList = h.getStopUnitList(); if (stopList != null && stopList.contains(s)) { h.handleStopAtNodeEvent(s); } return h; }
/** Constructs a flow analysis on the given <code>DirectedGraph</code>. */ public AbstractFlowAnalysis(DirectedGraph<N> graph) { unitToBeforeFlow = new IdentityHashMap<N, A>(graph.size() * 2 + 1); this.graph = graph; if (Options.v().interactive_mode()) { InteractionHandler.v().handleCfgEvent(graph); } }
protected void internalApply(Body b) { for (Iterator<Transform> tIt = this.iterator(); tIt.hasNext();) { final Transform t = tIt.next(); if (Options.v().interactive_mode()) { // logger.debug("sending transform: "+t.getPhaseName()+" for body: "+b+" for body pack: "+this.getPhaseName()); InteractionHandler.v().handleNewAnalysis(t, b); } t.apply(b); if (Options.v().interactive_mode()) { InteractionHandler.v().handleTransformDone(t, b); } } }
public void handleNextMethod() { if (!getNextMethod().hasActiveBody()) { return; } ArrayList<MethInfo> tgts = getTgtMethods(getNextMethod(), true); // System.out.println("for: "+getNextMethod().getName()+" tgts: "+tgts); ArrayList<MethInfo> srcs = getSrcMethods(getNextMethod(), true); // System.out.println("for: "+getNextMethod().getName()+" srcs: "+srcs); CallGraphInfo info = new CallGraphInfo(getNextMethod(), tgts, srcs); // System.out.println("sending next method"); InteractionHandler.v().handleCallGraphPart(info); // handleNextMethod(); }
public void reset() { if (methodToContexts == null) { methodToContexts = new MethodToContexts(Scene.v().getReachableMethods().listener()); } if (Scene.v().hasCallGraph()) { SootClass sc = Scene.v().getMainClass(); SootMethod sm = getFirstMethod(sc); // logger.debug("got first method"); ArrayList<MethInfo> tgts = getTgtMethods(sm, true); // logger.debug("got tgt methods"); ArrayList<MethInfo> srcs = getSrcMethods(sm, true); // logger.debug("got src methods"); CallGraphInfo info = new CallGraphInfo(sm, tgts, srcs); // logger.debug("will handle new call graph"); InteractionHandler.v().handleCallGraphStart(info, this); } }
if (InteractionHandler.v().getInteractionListener() == null) { logger.debug("Cannot run in interactive mode. No listeners available. Continuing in regular mode."); Options.v().set_interactive_mode(false);
/** Constructs a flow analysis on the given <code>DirectedGraph</code>. */ public AbstractFlowAnalysis(DirectedGraph<N> graph) { unitToBeforeFlow = new HashMap<N,A>(graph.size() * 2 + 1, 0.7f); this.graph = graph; if (Options.v().interactive_mode()){ InteractionHandler.v().handleCfgEvent(graph); } }
/** Constructs a flow analysis on the given <code>DirectedGraph</code>. */ public AbstractFlowAnalysis(DirectedGraph<N> graph) { unitToBeforeFlow = new HashMap<N,A>(graph.size() * 2 + 1, 0.7f); this.graph = graph; if (Options.v().interactive_mode()){ InteractionHandler.v().handleCfgEvent(graph); } }
protected void internalApply(Body b) { for( Iterator tIt = this.iterator(); tIt.hasNext(); ) { final Transform t = (Transform) tIt.next(); if (Options.v().interactive_mode()){ //G.v().out.println("sending transform: "+t.getPhaseName()+" for body: "+b+" for body pack: "+this.getPhaseName()); InteractionHandler.v().handleNewAnalysis(t, b); } t.apply(b); if (Options.v().interactive_mode()){ InteractionHandler.v().handleTransformDone(t, b); } } }
protected void internalApply(Body b) { for( Iterator tIt = this.iterator(); tIt.hasNext(); ) { final Transform t = (Transform) tIt.next(); if (Options.v().interactive_mode()){ //G.v().out.println("sending transform: "+t.getPhaseName()+" for body: "+b+" for body pack: "+this.getPhaseName()); InteractionHandler.v().handleNewAnalysis(t, b); } t.apply(b); if (Options.v().interactive_mode()){ InteractionHandler.v().handleTransformDone(t, b); } } }
public void handleNextMethod(){ if (!getNextMethod().hasActiveBody()) return; ArrayList<MethInfo> tgts = getTgtMethods(getNextMethod(), true); //System.out.println("for: "+getNextMethod().getName()+" tgts: "+tgts); ArrayList<MethInfo> srcs = getSrcMethods(getNextMethod(), true); //System.out.println("for: "+getNextMethod().getName()+" srcs: "+srcs); CallGraphInfo info = new CallGraphInfo(getNextMethod(), tgts, srcs); //System.out.println("sending next method"); InteractionHandler.v().handleCallGraphPart(info); //handleNextMethod(); }
public void handleNextMethod(){ if (!getNextMethod().hasActiveBody()) return; ArrayList<MethInfo> tgts = getTgtMethods(getNextMethod(), true); //System.out.println("for: "+getNextMethod().getName()+" tgts: "+tgts); ArrayList<MethInfo> srcs = getSrcMethods(getNextMethod(), true); //System.out.println("for: "+getNextMethod().getName()+" srcs: "+srcs); CallGraphInfo info = new CallGraphInfo(getNextMethod(), tgts, srcs); //System.out.println("sending next method"); InteractionHandler.v().handleCallGraphPart(info); //handleNextMethod(); }
public void runPacks() { if (Options.v().src_prec() == Options.src_prec_class && Options.v().keep_line_number()){ LineNumberAdder lineNumAdder = LineNumberAdder.v(); lineNumAdder.internalTransform("", null); } retrieveAllBodies(); if (Options.v().interactive_mode()){ if (InteractionHandler.v().getInteractionListener() == null){ G.v().out.println("Cannot run in interactive mode. No listeners available. Continuing in regular mode."); Options.v().set_interactive_mode(false); } else { G.v().out.println("Running in interactive mode."); } } runBodyPacks(); handleInnerClasses(); }
public void runPacks() { if (Options.v().src_prec() == Options.src_prec_class && Options.v().keep_line_number()){ LineNumberAdder lineNumAdder = LineNumberAdder.v(); lineNumAdder.internalTransform("", null); } retrieveAllBodies(); if (Options.v().interactive_mode()){ if (InteractionHandler.v().getInteractionListener() == null){ G.v().out.println("Cannot run in interactive mode. No listeners available. Continuing in regular mode."); Options.v().set_interactive_mode(false); } else { G.v().out.println("Running in interactive mode."); } } runBodyPacks(); handleInnerClasses(); }
public void reset() { if (methodToContexts == null){ methodToContexts = new MethodToContexts(Scene.v().getReachableMethods().listener()); } if(Scene.v().hasCallGraph()) { SootClass sc = Scene.v().getMainClass(); SootMethod sm = getFirstMethod(sc); //G.v().out.println("got first method"); ArrayList<MethInfo> tgts = getTgtMethods(sm, true); //G.v().out.println("got tgt methods"); ArrayList<MethInfo> srcs = getSrcMethods(sm, true); //G.v().out.println("got src methods"); CallGraphInfo info = new CallGraphInfo(sm, tgts, srcs); //G.v().out.println("will handle new call graph"); InteractionHandler.v().handleCallGraphStart(info, this); } }
public void reset() { if (methodToContexts == null){ methodToContexts = new MethodToContexts(Scene.v().getReachableMethods().listener()); } if(Scene.v().hasCallGraph()) { SootClass sc = Scene.v().getMainClass(); SootMethod sm = getFirstMethod(sc); //G.v().out.println("got first method"); ArrayList<MethInfo> tgts = getTgtMethods(sm, true); //G.v().out.println("got tgt methods"); ArrayList<MethInfo> srcs = getSrcMethods(sm, true); //G.v().out.println("got src methods"); CallGraphInfo info = new CallGraphInfo(sm, tgts, srcs); //G.v().out.println("will handle new call graph"); InteractionHandler.v().handleCallGraphStart(info, this); } }