From 8dac69fc9c83dbc10f5efb2f697408d9063a0e6c Mon Sep 17 00:00:00 2001 From: bdemsky <bdemsky> Date: Fri, 18 Mar 2011 09:47:08 +0000 Subject: [PATCH] more changes... --- Robust/src/Analysis/Disjoint/EffectsAnalysis.java | 7 +++---- Robust/src/Analysis/Pointer/Edge.java | 9 ++++++++- Robust/src/Analysis/Pointer/Graph.java | 5 +++-- Robust/src/Analysis/Pointer/Pointer.java | 2 +- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Robust/src/Analysis/Disjoint/EffectsAnalysis.java b/Robust/src/Analysis/Disjoint/EffectsAnalysis.java index 25bbe914..64cc5df2 100644 --- a/Robust/src/Analysis/Disjoint/EffectsAnalysis.java +++ b/Robust/src/Analysis/Disjoint/EffectsAnalysis.java @@ -189,14 +189,13 @@ public class EffectsAnalysis { public void analyzeFlatSetFieldNode(Set<Edge> dstedges, FieldDescriptor fld, FlatNode currentProgramPoint) { - for (Edge edge:dstedges) { - TaintSet taintSet = edge.getTaints(); + TaintSet taintSet = edge.getTaints(); Alloc affectedAlloc = edge.getDst(); - Effect effect = new Effect(affectedAlloc, Effect.write, fld); + Effect effect = new Effect(affectedAlloc, Effect.write, fld); if (taintSet!=null) for (Taint taint:taintSet.getTaints()) { - add( taint, effect, currentProgramPoint ); + add(taint, effect, currentProgramPoint ); } } } diff --git a/Robust/src/Analysis/Pointer/Edge.java b/Robust/src/Analysis/Pointer/Edge.java index 21c27b93..c2e2a138 100644 --- a/Robust/src/Analysis/Pointer/Edge.java +++ b/Robust/src/Analysis/Pointer/Edge.java @@ -26,7 +26,7 @@ public class Edge { if (srcvar!=null) return "<"+srcvar+", "+dst+">"; else if (fd!=null) - return "<"+src+", "+statuspredicate+", "+fd+", "+dst+">"; + return "<"+src+", "+statuspredicate+", "+fd+", "+dst+ ">"; else return "<"+src+", "+statuspredicate+", [], "+dst+">"; } @@ -96,6 +96,13 @@ public class Edge { return taints; } + public String taintString() { + if (taints==null) + return ""; + else + return taints.toString(); + } + public Edge changeTaintSet(TaintSet ts) { Edge newe=copy(); newe.taints=ts; diff --git a/Robust/src/Analysis/Pointer/Graph.java b/Robust/src/Analysis/Pointer/Graph.java index c925ab72..705966d9 100644 --- a/Robust/src/Analysis/Pointer/Graph.java +++ b/Robust/src/Analysis/Pointer/Graph.java @@ -130,7 +130,7 @@ public class Graph { if (e.srcvar!=tmp) throw new Error(e.srcvar +" is not equal to "+tmp); AllocNode n=e.dst; - output.println("\t"+tmp.getSymbol()+"->"+n.getID()+";"); + output.println("\t"+tmp.getSymbol()+"->"+n.getID()+"[label=\""+e.taintString()+"\"];"); } } } @@ -148,7 +148,8 @@ public class Graph { String src=node.getID(); String dst=n.getID(); String field=e.fd!=null?e.fd.getSymbol():"[]"; - output.println("\t"+src+"->"+dst+"[label=\""+field+"\"];"); + String taint=e.taints!=null?":"+e.taintString():""; + output.println("\t"+src+"->"+dst+"[label=\""+field+" "+taint+"\"];"); } } } diff --git a/Robust/src/Analysis/Pointer/Pointer.java b/Robust/src/Analysis/Pointer/Pointer.java index 1e1c9c07..fbf43b28 100644 --- a/Robust/src/Analysis/Pointer/Pointer.java +++ b/Robust/src/Analysis/Pointer/Pointer.java @@ -167,7 +167,7 @@ public class Pointer implements HeapAnalysis{ } //DEBUG - if (false) { + if (true) { int debugindex=0; for(Map.Entry<BBlock, Graph> e:bbgraphMap.entrySet()) { Graph g=e.getValue(); -- 2.34.1