6

llvm 的程序中有一个-view-cfg选项(docopt ) ,它使我能够通过dot程序查看控制流图。但是 CFG 太大而无法从 dot 呈现为 postscript。我知道有能够显示复杂图形的实用程序,包括 CFG(它的xvcg“VCG 工具 - 编译器图形的可视化”)。

那么,如何以 xvcg 格式输出 llvm 的 CFG 呢?

4

1 回答 1

8

从 LLVM 直接生成 .vcg 文件需要对GraphWriter进行大量修改,这是非常 GraphViz 特有的。相反,在我看来,最直接的解决方案是保存一个点文件(通过-dot-cfg而不是),然后使用Graph-Easy-view-cfg之类的东西对其进行转换。从它的文档(强调我的):

它理解以下格式作为输入:

输出可以是以下格式之一的图形转储:

顺便说一句,如果您想获得大量图表并希望在生成大量点文件之前查看它们,请考虑使用点查看器,它还允许您保存文件,例如我的 xdot.py 的 fork - 或更好的是xdot.py,使用 Graph-Easy 进行修改,使其知道如何以 .vcg 格式自行保存。

Graph-Easy 的另一种替代方法似乎是dot2gdl

于 2013-06-12T10:58:07.670 回答