2013-04-03 41 views

回答

17

有兩種方法,都包括兩個步驟

  1. 使用GCC內部VCG支持

    1. 編譯代碼(說test.c的) with vcg dumps

      gcc -fdump-tree-vcg -g test.c

    2. 使用任何第三方工具來獲取點輸出VCG

      graph-easy test.c.006t.vcg --as_dot

  2. 編譯原料堆放場,然後預處理他們提供一些腳本形成點文件(如在this useful article

兩種方法都有它們各自的好壞兩方面 - 首先,在gimple翻譯之前,你真的只能得到AST的一個轉儲,bu這很容易。其次,您可以將任何原始轉儲轉換爲點格式,但您必須支持腳本,這是開銷。

什麼是偏好 - 是你自己的選擇。


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的新版本使用此選項。

+0

這有幫助:)非常感謝 – asdrubalivan

+2

請更新或檢查您的答案:GCC 4.8.2說'CC1:錯誤:無法識別的命令行選項'-fdump-tree-vcg''。 – Ali

+0

感謝您的通知,更新了答案。較新版本的GCC使事情變得更容易。 –