Class CFGVisualizeLauncher


  • public final class CFGVisualizeLauncher
    extends java.lang.Object
    Launcher to generate the DOT or String representation of the control flow graph of a given method in a given class.

    Usage: Directly run it as the main class to generate the DOT representation of the control flow graph of a given method in a given class. See ConstantPropagationPlayground for another way to use it.

    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void main​(java.lang.String[] args)
      The main entry point of CFGVisualizeLauncher.
      static <V extends AbstractValue<V>,​S extends Store<S>,​T extends TransferFunction<V,​S>>
      void
      performAnalysis​(CFGVisualizeOptions config, @Nullable Analysis<V,​S,​T> analysis)
      Generate a visualization of the CFG of a method, with an optional analysis.
      static void writeStringOfCFG​(java.lang.String inputFile, java.lang.String method, java.lang.String clas, java.lang.String outputFile, Analysis<?,​?,​?> analysis)
      Write generated String representation of the CFG for a method to a file.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • main

        public static void main​(java.lang.String[] args)
        The main entry point of CFGVisualizeLauncher.
        Parameters:
        args - command-line arguments
      • performAnalysis

        public static <V extends AbstractValue<V>,​S extends Store<S>,​T extends TransferFunction<V,​S>> void performAnalysis​(CFGVisualizeOptions config,
                                                                                                                                             @Nullable Analysis<V,​S,​T> analysis)
        Generate a visualization of the CFG of a method, with an optional analysis.
        Type Parameters:
        V - the abstract value type of the analysis
        S - the store type of the analysis
        T - the transfer function type of the analysis
        Parameters:
        config - CFGVisualizeOptions that includes input file, output directory, method name, and class name
        analysis - analysis to perform before the visualization (or null if no analysis is to be performed)
      • writeStringOfCFG

        public static void writeStringOfCFG​(java.lang.String inputFile,
                                            java.lang.String method,
                                            java.lang.String clas,
                                            java.lang.String outputFile,
                                            Analysis<?,​?,​?> analysis)
        Write generated String representation of the CFG for a method to a file.
        Parameters:
        inputFile - a Java source file, used as input
        method - name of the method to generate the CFG for
        clas - name of the class which includes the method to generate the CFG for
        outputFile - source output file
        analysis - instance of forward or backward analysis from specific dataflow test case