我目前使用Graphviz来显示控制流图。基本上,(可缩减的)控制流程图是DAG加上一些指向前一层节点的边。后者的边缘不应该影响节点的位置。d3.js中的分层图
目前,dot
非常整齐地绘制图形,但它缺少一种简单的方法来添加交互性(例如折叠,滚动,缩放),这对分析非常大的图形来说是无价的。因此,我选择d3.js作为最成熟和功能丰富的图形库。
我敢肯定,有一种简单的方法可以在d3.js中绘制layered graphs(与dot
一样),但我似乎无法识别它。我怎么做?如果这有帮助,我已经对我的CFG执行支配者分析。
看起来像有在D3挂起功能要求: https://github.com/mbostock/d3/issues/349 – whitequark