| java.lang.Object soot.util.cfgcmd.CFGToDotGraph
CFGToDotGraph | public class CFGToDotGraph (Code) | | Class that creates a
DotGraph visualization
of a control flow graph.
|
Constructor Summary | |
public | CFGToDotGraph() Returns a CFGToDotGraph converter which will draw the graph
as a single arbitrarily-sized page, with full-length node labels.
If asked to draw a ExceptionalGraph , the
converter will identify the exceptions that will be thrown. |
Method Summary | |
public DotGraph | drawCFG(DirectedGraph graph, Body body) Create a DotGraph whose nodes and edges depict
a control flow graph without distinguished
exceptional edges.
Parameters: graph - a DirectedGraph representing a CFG(probably an instance of UnitGraph, BlockGraph,or one of their subclasses). Parameters: body - the Body represented by graph (usedto format the text within nodes). | public DotGraph | drawCFG(ExceptionalGraph graph) Create a DotGraph whose nodes and edges depict the
control flow in a ExceptionalGraph , with
distinguished edges for exceptional control flow. | public void | setBriefLabels(boolean useBrief) Specify whether to abbreviate the text in node labels. | public void | setExceptionEdgeAttr(String id, String value) Specify the dot graph attribute to use for edges depicting the
exceptions each node may throw, and their handlers. | public void | setExceptionalControlFlowAttr(String id, String value) Specify the dot graph attribute to use for exceptional control
flow edges. | public void | setHeadAttr(String id, String value) Specify the dot graph attribute to use for head nodes (in addition
to filling in the nodes). | public void | setOnePage(boolean onePage) Specify whether to split the graph into pages. | public void | setShowExceptions(boolean showExceptions) Specify whether the graph should depict the exceptions which
each node may throw, in the form of an edge from the throwing
node to the handler (if any), labeled with the possible
exception types. | public void | setTailAttr(String id, String value) Specify the dot graph attribute to use for tail nodes (in addition
to filling in the nodes). | public void | setUnexceptionalControlFlowAttr(String id, String value) Specify the dot graph attribute to use for regular control flow
edges. |
CFGToDotGraph | public CFGToDotGraph()(Code) | | Returns a CFGToDotGraph converter which will draw the graph
as a single arbitrarily-sized page, with full-length node labels.
If asked to draw a ExceptionalGraph , the
converter will identify the exceptions that will be thrown. By
default, it will distinguish different edges by coloring regular
control flow edges black, exceptional control flow edges red, and
thrown exception edges light gray. Head and tail nodes are filled
in, head nodes with gray, and tail nodes with light gray.
|
drawCFG | public DotGraph drawCFG(DirectedGraph graph, Body body)(Code) | | Create a DotGraph whose nodes and edges depict
a control flow graph without distinguished
exceptional edges.
Parameters: graph - a DirectedGraph representing a CFG(probably an instance of UnitGraph, BlockGraph,or one of their subclasses). Parameters: body - the Body represented by graph (usedto format the text within nodes). If no body is available, passnull . a visualization of graph . |
drawCFG | public DotGraph drawCFG(ExceptionalGraph graph)(Code) | | Create a DotGraph whose nodes and edges depict the
control flow in a ExceptionalGraph , with
distinguished edges for exceptional control flow.
Parameters: graph - the control flow graph a visualization of graph . |
setBriefLabels | public void setBriefLabels(boolean useBrief)(Code) | | Specify whether to abbreviate the text in node labels. This is most
relevant when the nodes represent basic blocks: abbreviated
node labels contain only a numeric label for the block, while
unabbreviated labels contain the code of its instructions.
Parameters: useBrief - indicates whether to abbreviate the text of node labels. |
setExceptionEdgeAttr | public void setExceptionEdgeAttr(String id, String value)(Code) | | Specify the dot graph attribute to use for edges depicting the
exceptions each node may throw, and their handlers. This
parameter has an effect only when drawing
ExceptionalGraph s.
Parameters: id - The attribute name, for example "style" or "color". Parameters: value - The attribute value, for example "dotted" or "lightgray". See Also: "Drawing graphs with dot" |
setExceptionalControlFlowAttr | public void setExceptionalControlFlowAttr(String id, String value)(Code) | | Specify the dot graph attribute to use for exceptional control
flow edges. This parameter has an effect only when
drawing ExceptionalGraph s.
Parameters: id - The attribute name, for example "style" or "color". Parameters: value - The attribute value, for example "dashed" or "red". See Also: "Drawing graphs with dot" |
setHeadAttr | public void setHeadAttr(String id, String value)(Code) | | Specify the dot graph attribute to use for head nodes (in addition
to filling in the nodes).
Parameters: id - The attribute name, for example "fillcolor". Parameters: value - The attribute value, for example "gray". See Also: "Drawing graphs with dot" |
setOnePage | public void setOnePage(boolean onePage)(Code) | | Specify whether to split the graph into pages.
Parameters: onePage - indicates whether to produce the graph as asingle, arbitrarily-sized page (if onePage istrue ) or several 8.5x11-inch pages (ifonePage is false ). |
setShowExceptions | public void setShowExceptions(boolean showExceptions)(Code) | | Specify whether the graph should depict the exceptions which
each node may throw, in the form of an edge from the throwing
node to the handler (if any), labeled with the possible
exception types. This parameter has an effect only when
drawing ExceptionalGraph s.
Parameters: showExceptions - indicates whether to show possible exceptionsand their handlers. |
setTailAttr | public void setTailAttr(String id, String value)(Code) | | Specify the dot graph attribute to use for tail nodes (in addition
to filling in the nodes).
Parameters: id - The attribute name, for example "fillcolor". Parameters: value - The attribute value, for example "lightgray". See Also: "Drawing graphs with dot" |
setUnexceptionalControlFlowAttr | public void setUnexceptionalControlFlowAttr(String id, String value)(Code) | | Specify the dot graph attribute to use for regular control flow
edges. This parameter has an effect only when
drawing ExceptionalGraph s.
Parameters: id - The attribute name, for example "style" or "color". Parameters: value - The attribute value, for example "solid" or "black". See Also: "Drawing graphs with dot" |
|
|