Class CFGUtil.DotFileGenerator

java.lang.Object
com.pnfsoftware.jeb.core.units.code.CFGUtil.DotFileGenerator
Enclosing class:
CFGUtil

public static class CFGUtil.DotFileGenerator extends Object
GraphViz generator for CFG objects. The edge labels are customizable via protected methods.
  • Constructor Details

    • DotFileGenerator

      public DotFileGenerator(IControlFlowGraph<?,?> cfg)
      Create a dot file generator.
      Parameters:
      cfg - control flow graph
  • Method Details

    • setTitle

      public void setTitle(String title)
      Set the graph title.
      Parameters:
      title - graph title
    • setBlockHeaders

      public void setBlockHeaders(Map<Long,String> blockHeaders)
      Set optional block headers.
      Parameters:
      blockHeaders - block headers
    • setLineLimit

      public void setLineLimit(int lineLimit)
      Set the line limit.
      Parameters:
      lineLimit - line limit
    • setGenerateBlockIndices

      public void setGenerateBlockIndices(int nodeIndexingStartValue)
      Set the first generated block index.
      Parameters:
      nodeIndexingStartValue - first block index
    • generate

      public String generate()
      Generate the dot file contents.
      Returns:
      dot file contents
    • generateEdgeLabel

      protected String generateEdgeLabel(IBasicBlock<? extends IInstruction> src, int outEdgeIndex)
      Generate a regular edge label.
      Parameters:
      src - source block
      outEdgeIndex - output edge index
      Returns:
      edge label, or null
    • generateIrregularEdgeLabel

      protected String generateIrregularEdgeLabel(IBasicBlock<? extends IInstruction> src, int outEdgeIndex)
      Generate an irregular edge label.
      Parameters:
      src - source block
      outEdgeIndex - output edge index
      Returns:
      edge label, or null
    • generateNodeBackgroundColor

      protected String generateNodeBackgroundColor(IBasicBlock<? extends IInstruction> blk)
      Generate a node background color.
      Parameters:
      blk - basic block
      Returns:
      background color, or null
    • generateNodeTextColor

      protected String generateNodeTextColor(IBasicBlock<? extends IInstruction> blk)
      Generate a node text color.
      Parameters:
      blk - basic block
      Returns:
      text color, or null