allow debug reach graphs to show taints but supress node, edge AND taint predicates...
authorjjenista <jjenista>
Tue, 3 May 2011 17:38:26 +0000 (17:38 +0000)
committerjjenista <jjenista>
Tue, 3 May 2011 17:38:26 +0000 (17:38 +0000)
Robust/src/Analysis/Disjoint/DisjointAnalysis.java
Robust/src/Analysis/Disjoint/ReachGraph.java
Robust/src/Analysis/Disjoint/RefEdge.java
Robust/src/Analysis/Disjoint/Taint.java
Robust/src/Analysis/Disjoint/TaintSet.java
Robust/src/Benchmarks/oooJava/master-makefile

index 4a4ec001cad5efaa74c482dd0f6897cc5b37a282..6792fa180cadea333a994de6e701de13b37439d0 100644 (file)
@@ -690,8 +690,8 @@ public class DisjointAnalysis implements HeapAnalysis {
     this.releaseMode             = state.DISJOINTRELEASEMODE;
     this.determinismDesired      = state.DISJOINTDETERMINISM;
 
-    this.writeFinalDOTs          = state.DISJOINTWRITEDOTS && !state.DISJOINTWRITEALL && !suppressOutput;
-    this.writeAllIncrementalDOTs = state.DISJOINTWRITEDOTS &&  state.DISJOINTWRITEALL && !suppressOutput;
+    this.writeFinalDOTs          = state.DISJOINTWRITEDOTS && !state.DISJOINTWRITEALL;
+    this.writeAllIncrementalDOTs = state.DISJOINTWRITEDOTS &&  state.DISJOINTWRITEALL;
 
     this.takeDebugSnapshots      = state.DISJOINTSNAPSYMBOL != null;
     this.descSymbolDebug         = state.DISJOINTSNAPSYMBOL;
@@ -1789,7 +1789,7 @@ public class DisjointAnalysis implements HeapAnalysis {
                     true,     // write labels (variables)
                     true,     // selectively hide intermediate temp vars
                     true,     // prune unreachable heap regions
-                    false,    // hide reachability altogether
+                    true,     // hide reachability altogether
                     true,     // hide subset reachability states
                     true,     // hide predicates
                     false);   // hide edge taints
index 4db4c91f9c1d39ad62fcb79d9516da6e9ab7bc36..186e58aa324bbdf719db0ebcecf14111ec5f170e 100644 (file)
@@ -2221,10 +2221,10 @@ public class ReachGraph {
   private static boolean resolveMethodDebugDOTwriteLabels     = true;
   private static boolean resolveMethodDebugDOTselectTemps     = true;
   private static boolean resolveMethodDebugDOTpruneGarbage    = true;
-  private static boolean resolveMethodDebugDOThideReach       = false;
-  private static boolean resolveMethodDebugDOThideSubsetReach = false;
+  private static boolean resolveMethodDebugDOThideReach       = true;
+  private static boolean resolveMethodDebugDOThideSubsetReach = true;
   private static boolean resolveMethodDebugDOThidePreds       = true;
-  private static boolean resolveMethodDebugDOThideEdgeTaints  = true;
+  private static boolean resolveMethodDebugDOThideEdgeTaints  = false;
 
   static String debugGraphPrefix;
   static int debugCallSiteVisitCounter;
index f8d8b0c656fbb15e951dcde16d59a955bbec1563..8c8c6852ac866e9b0ea95317b71c2ff5ad51d222 100644 (file)
@@ -275,7 +275,7 @@ public class RefEdge {
 
     if( !hideEdgeTaints ) {
       if( !taints.isEmpty() ) {
-        s += "\\n"+taints.toStringEscNewline();
+        s += "\\n"+taints.toStringEscNewline( hidePreds );
       }
     }
 
index 0f47a4de10e27317a5e48c8079a8360bd42b40cb..05f6c2015c14f4e19719d7e7341a7f02e23808f8 100644 (file)
@@ -223,7 +223,13 @@ public class Taint extends Canonical {
     return hash;
   }
 
+
   public String toString() {
+    return toString( false );
+  }
+
+
+  public String toString( boolean suppressPredicates ) {
 
     String s;
 
@@ -238,11 +244,16 @@ public class Taint extends Canonical {
       f += ", "+fnDefined;
     }
 
+    String p = "";
+    if( !suppressPredicates ) {
+      p += ":"+preds;
+    }
+
     return
       "("+s+
       "-"+var+
       ", "+allocSite.toStringBrief()+
       f+
-      "):"+preds;
+      ")"+p;
   }
 }
index bcbc883ba28beb7103baaa024a27aecbb5351958..39b12077a221e6dfeb0b7319bc1542799d373761 100644 (file)
@@ -157,14 +157,14 @@ public class TaintSet extends Canonical {
     return taints.hashCode();
   }
 
-  public String toStringEscNewline() {
+  public String toStringEscNewline( boolean suppressPredicates ) {
     String s = "taints[";
 
     Iterator<Taint> tItr = taints.iterator();
     while( tItr.hasNext() ) {
       Taint t = tItr.next();
 
-      s += t.toString();
+      s += t.toString( suppressPredicates );
       if( tItr.hasNext() ) {
         s += ",\\n";
       }
index 5789c0bd2f4d98e0837d95ca7e5a6142bffebf02..37f023d9ea5c1495adf79ced1fb4854b701e5499 100644 (file)
@@ -74,7 +74,8 @@ DISJOINT= -disjoint -disjoint-k 1 -enable-assertions $(DRELEASEMODE) #-disjoint-
 # -disjoint-debug-snap-method Remove 10 3 true
 
 DISJOINTDEBUG= -justanalyze -disjoint -disjoint-k 1 -enable-assertions \
-       -disjoint-debug-callsite Demand.add Lateral.compute 35 1000 true
+       -disjoint-write-dots final \
+       -disjoint-debug-callsite Demand.add Lateral.compute 1 1000 true
 #      -disjoint-desire-determinism
 #      -disjoint-debug-snap-method ComputeCenterOfMass 6 2 true
 #      -disjoint-debug-scheduling