本文整理了Java中soot.options.Options.interactive_mode()
方法的一些代码示例,展示了Options.interactive_mode()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Options.interactive_mode()
方法的具体详情如下:
包路径:soot.options.Options
类名称:Options
方法名:interactive_mode
暂无
代码示例来源:origin: Sable/soot
/** 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);
}
}
代码示例来源:origin: Sable/soot
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);
}
}
}
代码示例来源:origin: Sable/soot
@Override
protected Map<Value, Parity> newInitialFlow() {
Map<Value, Parity> initMap = new HashMap<Value, Parity>();
for (Local l : g.getBody().getLocals()) {
Type t = l.getType();
// System.out.println("next local: "+next);
if ((t instanceof IntegerType) || (t instanceof LongType)) {
initMap.put(l, BOTTOM);
}
}
for (ValueBox vb : g.getBody().getUseAndDefBoxes()) {
Value val = vb.getValue();
if (val instanceof ArithmeticConstant) {
initMap.put(val, getParity(initMap, val));
}
}
if (Options.v().interactive_mode()) {
updateBeforeFilterMap();
}
return initMap;
}
代码示例来源:origin: Sable/soot
final int doAnalysis(GraphView gv, InteractionFlowHandler ifh, Map<N, A> inFlow, Map<N, A> outFlow) {
assert gv != null;
assert ifh != null;
ifh = Options.v().interactive_mode() ? ifh : InteractionFlowHandler.NONE;
final List<Entry<N, A>> universe = Orderer.INSTANCE.newUniverse(graph, gv, entryInitialFlow(), isForward());
initFlow(universe, inFlow, outFlow);
Queue<Entry<N, A>> q = PriorityQueue.of(universe, true);
// Perform fixed point flow analysis
for (int numComputations = 0;; numComputations++) {
Entry<N, A> e = q.poll();
if (e == null) {
return numComputations;
}
meetFlows(e);
// Compute beforeFlow and store it.
ifh.handleFlowIn(this, e.data);
boolean hasChanged = flowThrough(e);
ifh.handleFlowOut(this, e.data);
// Update queue appropriately
if (hasChanged) {
q.addAll(Arrays.asList(e.out));
}
}
}
代码示例来源:origin: Sable/soot
protected void internalTransform(String phaseName, Map options) {
CGGOptions opts = new CGGOptions(options);
if (opts.show_lib_meths()) {
setShowLibMeths(true);
}
cg = Scene.v().getCallGraph();
if (Options.v().interactive_mode()) {
reset();
}
}
代码示例来源:origin: Sable/soot
if (Options.v().interactive_mode()) {
InteractionHandler ih = InteractionHandler.v();
A savedFlow = newInitialFlow();
if (Options.v().interactive_mode()) {
List<A> l = new ArrayList<A>();
if (!afterFallFlow.isEmpty()) {
代码示例来源:origin: Sable/soot
if (Options.v().interactive_mode()) {
buildAfterFilterMap(s);
updateAfterFilterMap(s);
代码示例来源:origin: Sable/soot
protected void internalTransform(Body b, String phaseName, Map options) {
boolean isInteractive = Options.v().interactive_mode();
Options.v().set_interactive_mode(false);
ParityAnalysis a;
代码示例来源:origin: Sable/soot
if (Options.v().interactive_mode()) {
if (InteractionHandler.v().getInteractionListener() == null) {
logger.debug("Cannot run in interactive mode. No listeners available. Continuing in regular mode.");
代码示例来源:origin: com.bugvm/bugvm-soot
/** 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);
}
}
代码示例来源:origin: ibinti/bugvm
/** 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);
}
}
代码示例来源:origin: ibinti/bugvm
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);
}
}
}
代码示例来源:origin: com.bugvm/bugvm-soot
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);
}
}
}
代码示例来源:origin: com.bugvm/bugvm-soot
protected Object newInitialFlow()
{
HashMap<Value, String> initMap = new HashMap<Value, String>();
Chain locals = g.getBody().getLocals();
Iterator it = locals.iterator();
while (it.hasNext()) {
Local next = (Local)it.next();
//System.out.println("next local: "+next);
if ((next.getType() instanceof IntegerType) || (next.getType() instanceof LongType)){
initMap.put(next, BOTTOM);
}
}
Iterator boxIt = g.getBody().getUseAndDefBoxes().iterator();
while (boxIt.hasNext()){
Value val = ((ValueBox)boxIt.next()).getValue();
if (val instanceof ArithmeticConstant) {
initMap.put(val, getParity(initMap, val));
}
}
if (Options.v().interactive_mode()){
updateBeforeFilterMap();
}
return initMap;
}
代码示例来源:origin: ibinti/bugvm
protected Object newInitialFlow()
{
HashMap<Value, String> initMap = new HashMap<Value, String>();
Chain locals = g.getBody().getLocals();
Iterator it = locals.iterator();
while (it.hasNext()) {
Local next = (Local)it.next();
//System.out.println("next local: "+next);
if ((next.getType() instanceof IntegerType) || (next.getType() instanceof LongType)){
initMap.put(next, BOTTOM);
}
}
Iterator boxIt = g.getBody().getUseAndDefBoxes().iterator();
while (boxIt.hasNext()){
Value val = ((ValueBox)boxIt.next()).getValue();
if (val instanceof ArithmeticConstant) {
initMap.put(val, getParity(initMap, val));
}
}
if (Options.v().interactive_mode()){
updateBeforeFilterMap();
}
return initMap;
}
代码示例来源:origin: ibinti/bugvm
if (Options.v().interactive_mode()){
buildAfterFilterMap(s);
updateAfterFilterMap(s);
代码示例来源:origin: ibinti/bugvm
protected void internalTransform(String phaseName, Map options){
CGGOptions opts = new CGGOptions(options);
if (opts.show_lib_meths()){
setShowLibMeths(true);
}
cg = Scene.v().getCallGraph();
if (Options.v().interactive_mode()){
reset();
}
}
代码示例来源:origin: com.bugvm/bugvm-soot
protected void internalTransform(String phaseName, Map options){
CGGOptions opts = new CGGOptions(options);
if (opts.show_lib_meths()){
setShowLibMeths(true);
}
cg = Scene.v().getCallGraph();
if (Options.v().interactive_mode()){
reset();
}
}
代码示例来源:origin: ibinti/bugvm
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();
}
代码示例来源:origin: com.bugvm/bugvm-soot
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();
}
内容来源于网络,如有侵权,请联系作者删除!