2013-12-08 79 views
5

隨着鐺和graphviz我可以生成一些C/C++代碼as explained in this answer調用圖。如何使用clang或其他工具生成數據流圖?

現在我需要一個在一個非常大的代碼庫(大部分是C)上計算的數據流圖,這個代碼庫是一個軟件,其中cmake被用作構建工具。

所以我的問題是,給定一個數據結構的名稱,我怎麼可能檢索函數的名稱和使用/實現此結構的文件?

有一些稀疏的參考一些數據流挖掘算法裏面Libtool從鐺項目(甚至不知道它的東西,保持穩定或發展),但我沒有發現任何關於clang本身或scan-build

我該如何生成這條信息?我真的需要這樣做,鑑於我想檢索代碼中使用的名稱,幾乎所有我已經查看過的靜態分析工具都關注函數和方法,我需要檢查clang中的數據結構使用情況。

編輯:

,我也在考慮使用的doxygen的文檔,所以如果的doxygen的XML輸出可能是一些有用的工具,我可以用它。

+0

這可能有點古怪,但您是否考慮過將整個代碼庫加載到Eclipse中,然後使用Eclipse的搜索功能來完成它? – slugonamission

+0

@slugonamission很好,因爲我找不到任何有用的東西......;命名我應該在Eclipse中使用什麼工具,我知道CDT是用於C和C++的Eclipse套件,但我不知道用於這種分析的是什麼。 – algl

+0

它不是真正用於數據流,但您的要求似乎是檢查數據結構的使用位置。通過使用CDT + Eclipse,您至少可以以圖形方式查找數據結構的使用位置(在某個搜索菜單中的某個位置),但不是完整的DFG。 – slugonamission

回答

-1

您可以查詢

  • 所有引用的符號
  • 全局定義
  • 功能由一個函數調用
  • 函數調用一個函數
  • 文件,包括文件
  • 多。

cscope

+0

沒有什麼可視化的東西?由於這個項目真的很大,終端上的一個簡單的文本列表很快就會變得非常複雜,以一種有用的方式進行管理;在該頁面上也沒有關於外部構建工具的文字,因爲我的代碼庫的大小和構建過程,我需要這種合作。 – algl

+1

雖然這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 –

+0

作爲@JohnDoyle,這個問題已被標記爲僅作爲鏈接刪除。我建議你重新發佈一個更全面的答案。 –

相關問題