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;
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
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;
if( !hideEdgeTaints ) {
if( !taints.isEmpty() ) {
- s += "\\n"+taints.toStringEscNewline();
+ s += "\\n"+taints.toStringEscNewline( hidePreds );
}
}
return hash;
}
+
public String toString() {
+ return toString( false );
+ }
+
+
+ public String toString( boolean suppressPredicates ) {
String s;
f += ", "+fnDefined;
}
+ String p = "";
+ if( !suppressPredicates ) {
+ p += ":"+preds;
+ }
+
return
"("+s+
"-"+var+
", "+allocSite.toStringBrief()+
f+
- "):"+preds;
+ ")"+p;
}
}
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";
}
# -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