private static boolean resolveMethodDebugDOThideSubsetReach = false;
private static boolean resolveMethodDebugDOThideEdgeTaints = true;
-
+ static String debugGraphPrefix;
+ static int debugCallSiteVisitsUntilExit = 0;
+
public void
resolveMethodCall( FlatCall fc,
) {
if( writeDebugDOTs ) {
- rgCallee.writeGraph( "callee",
+ debugGraphPrefix = String.format( "call%02d", debugCallSiteVisitsUntilExit );
+
+ rgCallee.writeGraph( debugGraphPrefix+"callee",
resolveMethodDebugDOTwriteLabels,
resolveMethodDebugDOTselectTemps,
resolveMethodDebugDOTpruneGarbage,
resolveMethodDebugDOThideSubsetReach,
resolveMethodDebugDOThideEdgeTaints );
- writeGraph( "caller00In",
+ writeGraph( debugGraphPrefix+"caller00In",
resolveMethodDebugDOTwriteLabels,
resolveMethodDebugDOTselectTemps,
resolveMethodDebugDOTpruneGarbage,
if( writeDebugDOTs ) {
- writeGraph( "caller20BeforeWipe",
+ writeGraph( debugGraphPrefix+"caller20BeforeWipe",
resolveMethodDebugDOTwriteLabels,
resolveMethodDebugDOTselectTemps,
resolveMethodDebugDOTpruneGarbage,
if( writeDebugDOTs ) {
- writeGraph( "caller30BeforeAddingNodes",
+ writeGraph( debugGraphPrefix+"caller30BeforeAddingNodes",
resolveMethodDebugDOTwriteLabels,
resolveMethodDebugDOTselectTemps,
resolveMethodDebugDOTpruneGarbage,
if( writeDebugDOTs ) {
- writeGraph( "caller31BeforeAddingEdges",
+ writeGraph( debugGraphPrefix+"caller31BeforeAddingEdges",
resolveMethodDebugDOTwriteLabels,
resolveMethodDebugDOTselectTemps,
resolveMethodDebugDOTpruneGarbage,
if( writeDebugDOTs ) {
- writeGraph( "caller35BeforeAssignReturnValue",
+ writeGraph( debugGraphPrefix+"caller35BeforeAssignReturnValue",
resolveMethodDebugDOTwriteLabels,
resolveMethodDebugDOTselectTemps,
resolveMethodDebugDOTpruneGarbage,
if( writeDebugDOTs ) {
- writeGraph( "caller38propagateReach",
+ writeGraph( debugGraphPrefix+"caller38propagateReach",
resolveMethodDebugDOTwriteLabels,
resolveMethodDebugDOTselectTemps,
resolveMethodDebugDOTpruneGarbage,
if( writeDebugDOTs ) {
- writeGraph( "caller40BeforeShadowMerge",
+ writeGraph( debugGraphPrefix+"caller40BeforeShadowMerge",
resolveMethodDebugDOTwriteLabels,
resolveMethodDebugDOTselectTemps,
resolveMethodDebugDOTpruneGarbage,
if( writeDebugDOTs ) {
- writeGraph( "caller45BeforeUnshadow",
+ writeGraph( debugGraphPrefix+"caller45BeforeUnshadow",
resolveMethodDebugDOTwriteLabels,
resolveMethodDebugDOTselectTemps,
resolveMethodDebugDOTpruneGarbage,
if( writeDebugDOTs ) {
- writeGraph( "caller50BeforeGlobalSweep",
+ writeGraph( debugGraphPrefix+"caller50BeforeGlobalSweep",
resolveMethodDebugDOTwriteLabels,
resolveMethodDebugDOTselectTemps,
resolveMethodDebugDOTpruneGarbage,
if( writeDebugDOTs ) {
- writeGraph( "caller90AfterTransfer",
+ writeGraph( debugGraphPrefix+"caller90AfterTransfer",
resolveMethodDebugDOTwriteLabels,
resolveMethodDebugDOTselectTemps,
resolveMethodDebugDOTpruneGarbage,
resolveMethodDebugDOThideSubsetReach,
resolveMethodDebugDOThideEdgeTaints );
+
+ --debugCallSiteVisitsUntilExit;
+ if( debugCallSiteVisitsUntilExit <= 0 ) {
+ System.out.println( "!!! Exiting after requested visits to call site. !!!" );
+ System.exit( 0 );
+ }
}
}