public class CFGVisualizeLauncher extends Object
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.
| Constructor and Description |
|---|
CFGVisualizeLauncher() |
| Modifier and Type | Method and Description |
|---|---|
<V extends AbstractValue<V>,S extends Store<S>,T extends TransferFunction<V,S>> |
generateDOTofCFG(String inputFile,
String outputDir,
String method,
String clas,
boolean pdf,
boolean verbose,
@Nullable Analysis<V,S,T> analysis)
Generate the DOT representation of the CFG for a method.
|
protected void |
generateDOTofCFGWithoutAnalysis(String inputFile,
String outputDir,
String method,
String clas,
boolean pdf,
boolean verbose)
Generate the DOT representation of the CFG for a method, only.
|
protected ControlFlowGraph |
generateMethodCFG(String file,
String clas,
String method)
Generate the control flow graph of a method in a class.
|
<V extends AbstractValue<V>,S extends Store<S>,T extends TransferFunction<V,S>> |
generateStringOfCFG(String inputFile,
String method,
String clas,
boolean verbose,
@Nullable Analysis<V,S,T> analysis)
Generate the String representation of the CFG for a method.
|
protected String |
generateStringOfCFGWithoutAnalysis(String inputFile,
String method,
String clas,
boolean verbose)
Generate the String representation of the CFG for a method, only.
|
static void |
main(String[] args)
The main entry point of CFGVisualizeLauncher.
|
protected void |
printError(@Nullable String string)
Print error message.
|
protected void |
printUsage()
Print usage information.
|
protected void |
producePDF(String file)
Invoke "dot" command to generate a PDF.
|
public static void main(String[] args)
args - the passed arguments, see printUsage() for the usageprotected void generateDOTofCFGWithoutAnalysis(String inputFile, String outputDir, String method, String clas, boolean pdf, boolean verbose)
inputFile - a Java source file, used as inputoutputDir - output directorymethod - name of the method to generate the CFG forclas - name of the class which includes the method to generate the CFG forpdf - also generate a PDFverbose - show verbose information in CFGprotected String generateStringOfCFGWithoutAnalysis(String inputFile, String method, String clas, boolean verbose)
inputFile - a Java source file, used as inputmethod - name of the method to generate the CFG forclas - name of the class which includes the method to generate the CFG forverbose - show verbose information in CFGpublic <V extends AbstractValue<V>,S extends Store<S>,T extends TransferFunction<V,S>> void generateDOTofCFG(String inputFile, String outputDir, String method, String clas, boolean pdf, boolean verbose, @Nullable Analysis<V,S,T> analysis)
V - the abstract value type to be tracked by the analysisS - the store type used in the analysisT - the transfer function type that is used to approximated runtime behaviorinputFile - a Java source file, used as inputoutputDir - source output directorymethod - name of the method to generate the CFG forclas - name of the class which includes the method to generate the CFG forpdf - also generate a PDFverbose - show verbose information in CFGanalysis - analysis to perform before the visualization (or null if no analysis is
to be performed)protected ControlFlowGraph generateMethodCFG(String file, String clas, String method)
file - a Java source file, used as inputclas - name of the class which includes the method to generate the CFG formethod - name of the method to generate the CFG forprotected void producePDF(String file)
file - name of the dot filepublic <V extends AbstractValue<V>,S extends Store<S>,T extends TransferFunction<V,S>> @Nullable Map<String,Object> generateStringOfCFG(String inputFile, String method, String clas, boolean verbose, @Nullable Analysis<V,S,T> analysis)
V - the abstract value type to be tracked by the analysisS - the store type used in the analysisT - the transfer function type that is used to approximated runtime behaviorinputFile - a Java source file, used as inputmethod - name of the method to generate the CFG forclas - name of the class which includes the method to generate the CFG forverbose - show verbose information in CFGanalysis - analysis to perform before the visualization (or null if no analysis is
to be performed)protected void printUsage()