我正在研究Linux內核中一些非常長的函數(link,link)。我在哪裏可以找到優秀的開源代碼流程可視化軟件?
對於這項研究,我想使用一些代碼流可視化工具,這將能夠繪製一個圖形,其中每個頂點是一個決策點,每條邊都是一段以相應方式運行的代碼。
你知道任何可以直觀顯示C代碼的好的開源項目嗎?
我正在研究Linux內核中一些非常長的函數(link,link)。我在哪裏可以找到優秀的開源代碼流程可視化軟件?
對於這項研究,我想使用一些代碼流可視化工具,這將能夠繪製一個圖形,其中每個頂點是一個決策點,每條邊都是一段以相應方式運行的代碼。
你知道任何可以直觀顯示C代碼的好的開源項目嗎?
也許像KCacheGrind這樣的工具會有所幫助。它根據實際的調用生成調用圖,如果沒有實際運行該程序,則不能預先生成調用圖,這可能不適合您的需求,但可能會再次發生。
KCacheGrind Call Graph http://kcachegrind.sourceforge.net/html/pics/KcgShot3Large.gif
DOxygen做了一些'可視化',
但你需要處理一些代碼才能使用。
檢查另一個有趣的事情是lxr
Linux Cross Referencer是用於索引和顯示源代碼庫軟件工具集。 LXR最初是針對Linux源代碼的,但已證明可用於各種軟件項目。 lxr.linux.no目前正在運行LXR軟件的實驗性分支。
History flow's對於多個版本的變化/差異非常整齊。
Codeplex有一個項目,Dependency Visualizer,它也支持C.
Gprof2Dot可以呈現oprofile,這也會給你動態的信息。
CodeViz也(靜態工具)將工作。
如果您使用gcc,gcc-xml也有一個introspector plugin todo這個。
您似乎想要獲取C源代碼(「決策」,「代碼塊」)的流程圖。
類似這樣的C flowchart?
要正確地做到這一點,對於Linux核心代碼,我希望你必須先對代碼進行預處理,以去掉宏和條件。我會假設海灣合作委員會將在內部構建這樣一個圖表,並且您應該能夠在該圖表上得到您的支持。
的確很不錯。我會試試看。 – 2009-07-24 21:13:44