From aa521d67228a30aee6847cada08a73a100f42d77 Mon Sep 17 00:00:00 2001 From: jjenista Date: Wed, 17 Mar 2010 22:31:11 +0000 Subject: [PATCH] use different graph writing options to better find reachability problems --- .../Analysis/Disjoint/DisjointAnalysis.java | 10 +-- Robust/src/Analysis/Disjoint/ReachGraph.java | 73 ++++++++++++++++--- .../Tests/disjoint/predicateTest3/makefile | 4 +- .../Tests/disjoint/predicateTest3/test.java | 2 +- 4 files changed, 69 insertions(+), 20 deletions(-) diff --git a/Robust/src/Analysis/Disjoint/DisjointAnalysis.java b/Robust/src/Analysis/Disjoint/DisjointAnalysis.java index 93104670..fdb092fe 100644 --- a/Robust/src/Analysis/Disjoint/DisjointAnalysis.java +++ b/Robust/src/Analysis/Disjoint/DisjointAnalysis.java @@ -714,11 +714,11 @@ public class DisjointAnalysis { try { rg.writeGraph( "COMPLETE"+d, - true, // write labels (variables) - true, // selectively hide intermediate temp vars - true, // prune unreachable heap regions - false, // hide subset reachability states - true ); // hide edge taints + true, // write labels (variables) + true, // selectively hide intermediate temp vars + true, // prune unreachable heap regions + false, // hide subset reachability states + true ); // hide edge taints } catch( IOException e ) {} } } diff --git a/Robust/src/Analysis/Disjoint/ReachGraph.java b/Robust/src/Analysis/Disjoint/ReachGraph.java index cce95f49..11b48e07 100644 --- a/Robust/src/Analysis/Disjoint/ReachGraph.java +++ b/Robust/src/Analysis/Disjoint/ReachGraph.java @@ -1900,7 +1900,12 @@ public class ReachGraph { if( writeDebugDOTs ) { try { - rg.writeGraph( "calleeview", true, false, false, true, true ); + rg.writeGraph( "calleeview", + true, // write labels (variables) + true, // selectively hide intermediate temp vars + true, // prune unreachable heap regions + true, // hide subset reachability states + true ); // hide edge taints } catch( IOException e ) {} } @@ -1924,9 +1929,17 @@ public class ReachGraph { if( writeDebugDOTs ) { try { rgCallee.writeGraph( "callee", - true, false, false, true, true ); + true, // write labels (variables) + true, // selectively hide intermediate temp vars + true, // prune unreachable heap regions + true, // hide subset reachability states + true ); // hide edge taints writeGraph( "caller00In", - true, false, false, true, true, + true, // write labels (variables) + true, // selectively hide intermediate temp vars + true, // prune unreachable heap regions + true, // hide subset reachability states + true, // hide edge taints callerNodeIDsCopiedToCallee ); } catch( IOException e ) {} } @@ -2148,7 +2161,11 @@ public class ReachGraph { if( writeDebugDOTs ) { try { writeGraph( "caller20BeforeWipe", - true, false, false, true, true ); + true, // write labels (variables) + true, // selectively hide intermediate temp vars + true, // prune unreachable heap regions + true, // hide subset reachability states + true ); // hide edge taints } catch( IOException e ) {} } @@ -2170,7 +2187,11 @@ public class ReachGraph { if( writeDebugDOTs ) { try { writeGraph( "caller30BeforeAddingNodes", - true, false, false, true, true ); + true, // write labels (variables) + true, // selectively hide intermediate temp vars + true, // prune unreachable heap regions + true, // hide subset reachability states + true ); // hide edge taints } catch( IOException e ) {} } @@ -2235,7 +2256,11 @@ public class ReachGraph { if( writeDebugDOTs ) { try { writeGraph( "caller31BeforeAddingEdges", - true, false, false, true, true ); + true, // write labels (variables) + true, // selectively hide intermediate temp vars + true, // prune unreachable heap regions + true, // hide subset reachability states + true ); // hide edge taints } catch( IOException e ) {} } @@ -2431,7 +2456,11 @@ public class ReachGraph { if( writeDebugDOTs ) { try { writeGraph( "caller35BeforeAssignReturnValue", - true, false, false, true, true ); + true, // write labels (variables) + true, // selectively hide intermediate temp vars + true, // prune unreachable heap regions + true, // hide subset reachability states + true ); // hide edge taints } catch( IOException e ) {} } @@ -2513,7 +2542,11 @@ public class ReachGraph { if( writeDebugDOTs ) { try { writeGraph( "caller38propagateReach", - true, false, false, true, true ); + true, // write labels (variables) + true, // selectively hide intermediate temp vars + true, // prune unreachable heap regions + true, // hide subset reachability states + true ); // hide edge taints } catch( IOException e ) {} } @@ -2539,7 +2572,11 @@ public class ReachGraph { if( writeDebugDOTs ) { try { writeGraph( "caller40BeforeShadowMerge", - true, false, false, true, true ); + true, // write labels (variables) + true, // selectively hide intermediate temp vars + true, // prune unreachable heap regions + true, // hide subset reachability states + true ); // hide edge taints } catch( IOException e ) {} } @@ -2636,7 +2673,11 @@ public class ReachGraph { if( writeDebugDOTs ) { try { writeGraph( "caller45BeforeUnshadow", - true, false, false, true, true ); + true, // write labels (variables) + true, // selectively hide intermediate temp vars + true, // prune unreachable heap regions + true, // hide subset reachability states + true ); // hide edge taints } catch( IOException e ) {} } @@ -2660,7 +2701,11 @@ public class ReachGraph { if( writeDebugDOTs ) { try { writeGraph( "caller50BeforeGlobalSweep", - true, false, false, true, true ); + true, // write labels (variables) + true, // selectively hide intermediate temp vars + true, // prune unreachable heap regions + true, // hide subset reachability states + true ); // hide edge taints } catch( IOException e ) {} } @@ -2675,7 +2720,11 @@ public class ReachGraph { if( writeDebugDOTs ) { try { writeGraph( "caller90AfterTransfer", - true, false, false, true, true ); + true, // write labels (variables) + true, // selectively hide intermediate temp vars + true, // prune unreachable heap regions + true, // hide subset reachability states + true ); // hide edge taints } catch( IOException e ) {} } } diff --git a/Robust/src/Tests/disjoint/predicateTest3/makefile b/Robust/src/Tests/disjoint/predicateTest3/makefile index b4cecea7..42058b05 100644 --- a/Robust/src/Tests/disjoint/predicateTest3/makefile +++ b/Robust/src/Tests/disjoint/predicateTest3/makefile @@ -8,10 +8,10 @@ BUILDSCRIPT=~/research/Robust/src/buildscript #DEBUGFLAGS= -disjoint-debug-callsite Foo main 1 #DEBUGFLAGS= -disjoint-debug-callsite main analysisEntryMethod 1 -#DEBUGFLAGS= -disjoint-debug-callsite addSomething main 1 +DEBUGFLAGS= -disjoint-debug-callsite addSomething main 100 #DEBUGFLAGS= -disjoint-debug-callsite addBar addSomething 1 #DEBUGFLAGS= -disjoint-debug-callsite Bar addBar 1 -DEBUGFLAGS= +#DEBUGFLAGS= BSFLAGS= -mainclass Test -justanalyze -disjoint -disjoint-k 2 -disjoint-write-dots final -disjoint-write-ihms -disjoint-alias-file aliases.txt normal -enable-assertions diff --git a/Robust/src/Tests/disjoint/predicateTest3/test.java b/Robust/src/Tests/disjoint/predicateTest3/test.java index 7bbce921..ba689695 100644 --- a/Robust/src/Tests/disjoint/predicateTest3/test.java +++ b/Robust/src/Tests/disjoint/predicateTest3/test.java @@ -16,7 +16,7 @@ public class Test { } public static void addSomething( Foo x ) { - x.f = disjoint added new Foo(); + //x.f = disjoint added new Foo(); } public static Foo getAFoo() { -- 2.34.1