rg.writeGraph("genReach"+fgrn.getGraphName(),
true, // write labels (variables)
- false, //true, // selectively hide intermediate temp vars
+ true, // selectively hide intermediate temp vars
true, // prune unreachable heap regions
- true, // hide reachability altogether
+ false, // hide reachability altogether
true, // hide subset reachability states
true, // hide predicates
true); //false); // hide edge taints
fn2rgAtExit.put(fn, rgOnExit);
+
// at this point rg should be the correct update
// by an above transfer function, or untouched if
// the flat node type doesn't affect the heap
true, // prune unreachable heap regions
false, // hide reachability
false, // hide subset reachability states
- true, // hide predicates
+ false, // hide predicates
true); // hide edge taints
}
}
description;
if( !hideReach ) {
- s += "\\n"+alpha.toStringEscNewline(hideSubsetReach);
+ s += "\\n"+alpha.toStringEscNewline(hideSubsetReach, hidePreds);
}
if( !hidePreds ) {
// after tokens have been aged, reset newest node's reachability
// and a brand new node has a "true" predicate
- hrn0.setAlpha(hrn0.getInherent() );
- hrn0.setPreds(predsTrue);
+ hrn0.setAlpha( Canonical.changePredsTo( hrn0.getInherent(), predsTrue ) );
+ hrn0.setPreds( predsTrue);
}
private static boolean resolveMethodDebugDOTwriteLabels = true;
private static boolean resolveMethodDebugDOTselectTemps = true;
private static boolean resolveMethodDebugDOTpruneGarbage = true;
- private static boolean resolveMethodDebugDOThideReach = true;
- private static boolean resolveMethodDebugDOThideSubsetReach = true;
+ private static boolean resolveMethodDebugDOThideReach = false;
+ private static boolean resolveMethodDebugDOThideSubsetReach = false;
private static boolean resolveMethodDebugDOThidePreds = false;
private static boolean resolveMethodDebugDOThideEdgeTaints = true;
continue;
}
+
+
// since the node is coming over, find out which reach
// states on it should come over, too
assert calleeNode2calleeStatesSatisfied.get(hrnCallee) == null;
}
- public String toStringEscNewline(boolean hideSubsetReachability) {
+ public String toStringEscNewline(boolean hideSubsetReachability,
+ boolean hidePreds) {
String s = "[";
Iterator<ReachState> i = this.iterator();
continue;
}
- s += state;
+ // jjenista - Use this version if you REALLY want to
+ // the see the preds for heap region nodes, edges,
+ // AND every reach state on all those elements!
+ //s += state.toString( hidePreds );
+ s += state.toString();
+
if( i.hasNext() ) {
s += "\\n";
}
s += "]";
return s;
}
+
+ public String toStringPreds() {
+ String s = "[\n";
+
+ for( ReachState state: reachStates ) {
+ s += " "+state.toStringPreds()+"\n";
+ }
+
+ return s+"]";
+ }
}
public String toStringPreds() {
return reachTuples+":"+preds;
}
+
+ public String toString( boolean hidePreds ) {
+ if( hidePreds ) {
+ return toString();
+ }
+ return toStringPreds();
+ }
}
type.toPrettyString()+"\\n"+
field;
if( !hideReach ) {
- s += "\\n"+beta.toStringEscNewline(hideSubsetReach);
+ s += "\\n"+beta.toStringEscNewline(hideSubsetReach, hidePreds);
}
if( !hidePreds ) {
# EX: (skip first 10 visits, capture the next 3, then halt)
# -disjoint-debug-snap-method Remove 10 3 true
-DISJOINTDEBUG= -disjoint -disjoint-k 1 -enable-assertions
-# -disjoint-debug-callsite RayTracer.trace RayTracer.shade 10000 1 true
+DISJOINTDEBUG= -disjoint -disjoint-k 1 -enable-assertions $(DRELEASEMODE)
+# -disjoint-debug-snap-method ArrayIndexedGraph.createNode 1 100 true \
+# -disjoint-debug-callsite ArrayIndexedGraph.createNode Barneshut.run 1 100 true
# -disjoint-write-dots final \
# -flatirusermethods \
# -disjoint-write-ihms \
# -disjoint-write-initial-contexts \
-# -disjoint-debug-snap-method RayTracer.shade 300 999 true
# -disjoint-debug-snap-method String.indexOf 1 1000 true
# -disjoint-debug-callsite String.concat2 FileInputStream.readLine 1 1000 true \
# -disjoint-debug-snap-method String.concat2 1 1000 true
$(BUILDSCRIPT) $(BMFLAGS) $(BSFLAGS) $(USECOREPROF) $(USEOOO) $(DISJOINT) -o $(PROGRAM)p -builddir par $(SOURCE_FILES)
ooo-debug: $(SOURCE_FILES) ../master-makefile
- $(BUILDSCRIPT) $(BMFLAGS) $(BSFLAGS) $(USECOREPROF) $(USEOOO) $(OOODEBUG) $(DISJOINT) -o $(PROGRAM)p -builddir par $(SOURCE_FILES)
+ $(BUILDSCRIPT) $(BMFLAGS) $(BSFLAGS) $(USECOREPROF) $(USEOOO) $(OOODEBUG) $(DISJOINTDEBUG) -o $(PROGRAM)p -builddir par $(SOURCE_FILES)
disjoint-debug: $(SOURCE_FILES) ../master-makefile