私はその後、私は.PNGファイルまたは同様にそれを表示するための.dotファイル(Graphvizからによって生成されたファイル)にはgccによって生成された抽象構文木をダンプしたい、質問のタイトルは自明だと思います。私はそれを行うことができる方法はありますか?事前にgccによって生成された抽象構文木を.dotファイルにダンプするにはどうしたらいいですか?
感謝:)
私はその後、私は.PNGファイルまたは同様にそれを表示するための.dotファイル(Graphvizからによって生成されたファイル)にはgccによって生成された抽象構文木をダンプしたい、質問のタイトルは自明だと思います。私はそれを行うことができる方法はありますか?事前にgccによって生成された抽象構文木を.dotファイルにダンプするにはどうしたらいいですか?
感謝:)
GCC内部VCGのサポートに
を使用して、両方の二つのステップ
を含む二つの方法がありますが、あなたのコード(たとえばtest.cのを)コンパイルvcgダンプ付き
gcc -fdump-tree-vcg -g test.c
生のダンプを使用してコンパイル
graph-easy test.c.006t.vcg --as_dot
VCGからドットの出力を得るために、任意のサードパーティ製のツールを使用して、(this useful articleのように)ドットファイルを形成するために、いくつかのスクリプトとそれらを前処理する
どちらの方法は、自分の良い面と悪い面を持っている - 最初にあなたは本当にBU、GIMPLE翻訳前のASTの唯一のダンプを取得することができますそれは簡単です。 2番目の場合は、任意の生のダンプをドット形式に変換できますが、オーバーヘッドであるスクリプトをサポートする必要があります。
好きなものはお好みです。
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の新しいバージョンをご使用ください。
ありがとうございました – asdrubalivan
GCC 4.8.2は 'cc1:error:認識できないコマンドラインオプション '-fdump-tree-vcg'と答えています。 – Ali
通知ありがとう、更新された回答。 GCCの新しいバージョンは事をもっと簡単にします。 –