質問のタイトルは自明だと思います。gcc によって生成された抽象構文ツリーを .dot ファイル (Graphviz によって生成されたファイル) にダンプしたいのは、それを .png ファイルなどで表示したいからです。それを行う方法はありますか?
前もって感謝します :)
質問のタイトルは自明だと思います。gcc によって生成された抽象構文ツリーを .dot ファイル (Graphviz によって生成されたファイル) にダンプしたいのは、それを .png ファイルなどで表示したいからです。それを行う方法はありますか?
前もって感謝します :)
2 つの方法があり、どちらも 2 つのステップを含みます
GCC 内部 vcg サポートの使用
vcg ダンプを使用してコード (test.c など) をコンパイルします。
gcc -fdump-tree-vcg -g test.c
サードパーティのツールを使用して、vcg からドット出力を取得します
graph-easy test.c.006t.vcg --as_dot
生のダンプでコンパイルし、いくつかのスクリプトで前処理してドット ファイルを作成します (この便利な記事のように)
どちらの方法にもそれぞれ良い面と悪い面があります。最初は gimple 変換の前に AST のダンプを 1 つしか取得できませんが、簡単です。秒を使用すると、生のダンプをドット形式に変換できますが、スクリプトをサポートする必要があるため、オーバーヘッドが生じます。
何を優先するかは、あなた自身の選択です。
UPD: 時代は変わりつつあります。gcc 4.8.2 の新しいオプションにより、ドット ファイルをすぐに生成できます。以下を指定するだけです:
gcc test.c -fdump-tree-all-graph
そして、すでにフォーマットされたドットファイルがたくさんあります:
test.c.008t.lower.dot
test.c.012t.cfg.dot
test.c.016t.ssa.dot
... etc ...
このオプションでは、必ず新しいバージョンの GCC を使用してください。