Re: [問題] 是否有專案內所有程式碼的分析工具?

看板C_and_CPP作者 (pazroach)時間13年前 (2012/06/23 08:31), 編輯推噓9(9019)
留言28則, 11人參與, 最新討論串2/2 (看更多)
※ 引述《proach (pazroach)》之銘言: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) win32 問題(Question): 有時會接手一些別人寫好的 project, 裡面會有幾十個 .c 與 .h檔 是否有工具可以分析整個 project 內的 source code, 找出 每個變數與 function的定義,在那邊被使用過? 甚至可以找出一些 functions 之間的關連,例如 funcA( )內會呼叫 funcB( )與 funcC( ), 做出類似流程圖的效果? 有這種工具的話,應該可以降低接手陌生專案的難度吧 :) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.139.138

06/20 12:15,
(1)doxygen+graphviz(2)vc:檢視->(呼叫階層,類別檢視器)
06/20 12:15

06/20 12:16,
找個有這類功能的IDE就好 visual studio之類
06/20 12:16

06/20 12:22,
有興趣可參考一下 http://ppt.cc/IUfP ,很多ide都有。
06/20 12:22

06/20 12:34,
可以的話,問上一個維護的人是最快的...XDDD
06/20 12:34

06/20 13:09,
上面那個有用的話幹嘛要容易maitain跟注重code style XD
06/20 13:09

06/20 14:02,
因為常常會遇到"不可以"的情況啊...XDD
06/20 14:02

06/20 14:14,
不就是Source Insight、ctags、cscope、GNU Global這些?
06/20 14:14

06/20 18:33,
推一樓和樓上
06/20 18:33
感謝諸位給予建議的高手 :) 但我最後的解決方法非常好笑又沒有效率,我突然想到以前有個程式叫做 ultraedit 好像有個從小都不懂拿來幹嘛的 Search --> Find In Files 拿來試一下成功了 Find 輸入想找的 function name In Files/Type 輸入 *.c Directory 輸入專案所在位置 幾秒鐘後,他列出了該關鍵字所在的檔案位置,敲一下位置就開啟檔案,跳到 該位置,這樣...起碼加速看程式碼的速度 orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.184.43

06/23 16:32, , 1F
zzz...這.........
06/23 16:32, 1F

06/23 16:33, , 2F
似乎本來就是這樣阿..ultraedit 超好用
06/23 16:33, 2F

06/23 16:48, , 3F
source insight比ultraedit好用太多...
06/23 16:48, 3F

06/23 16:52, , 4F
source insight真的好很多,它可以把呼叫函式給圖形化
06/23 16:52, 4F

06/23 17:04, , 5F
其實我偶爾也會用 find/grep 來找XD
06/23 17:04, 5F

06/23 17:38, , 6F
windows上可用 vim + ctags + cscope 有效率多了
06/23 17:38, 6F

06/23 17:40, , 7F
只不過要學一下怎麼操作
06/23 17:40, 7F

06/23 17:46, , 8F
我想起來有同事在用Source Navigator NG 你可以試試
06/23 17:46, 8F

06/23 17:51, , 9F
好grep, 不用嗎?
06/23 17:51, 9F

06/23 20:11, , 10F
推source insight 大型專案超好trace的
06/23 20:11, 10F

06/23 20:20, , 11F
source insight付費Orz
06/23 20:20, 11F

06/23 20:35, , 12F
什麼! source insight 原來要...(摀嘴抓走
06/23 20:35, 12F

06/23 21:08, , 13F
↑ XDD
06/23 21:08, 13F

06/23 21:16, , 14F
source insight 好像都用來看程式,有用來寫程式嗎?
06/23 21:16, 14F

06/23 22:14, , 15F
敝公司超小器 沒有買source insight 只能找免費的用
06/23 22:14, 15F

06/23 23:47, , 16F
Eclipse for C/C++ 跟 SlickEdit 也不錯,後者較冷門。
06/23 23:47, 16F

06/23 23:48, , 17F
Source Navigator 以前試過,parsing 太久,不知改善沒
06/23 23:48, 17F

06/23 23:49, , 18F
vim 大多搭 ctags cscope,其實搭 GNU Global 也不錯。
06/23 23:49, 18F

06/23 23:50, , 19F
GNU Global 另一個好處是有 HTML 輸出。
06/23 23:50, 19F

06/23 23:51, , 20F
HTML 輸出 Demo:http://goo.gl/66WVd
06/23 23:51, 20F

06/23 23:53, , 21F
@diabloevagto: 我用 Source Insight 寫程式好多年。XD
06/23 23:53, 21F

06/24 00:01, , 22F
Source Insight當然可以寫,只是編譯除錯是另一回事...XD
06/24 00:01, 22F

06/24 11:29, , 23F
看來我還是繼續用codeblocks寫...
06/24 11:29, 23F

06/24 11:30, , 24F
編譯還好,debug挺重要的0.0
06/24 11:30, 24F

06/24 12:37, , 25F
我會用SI寫/Trace程式,用IDE來debug。兩者不衝突啊。
06/24 12:37, 25F

06/24 12:51, , 26F
我功力不足,需要編寫邊debug...
06/24 12:51, 26F

06/25 14:41, , 27F
gprof bin | gprof2dot.py | c++filt | dot -Tpng -o cg.png
06/25 14:41, 27F

06/25 14:42, , 28F
上面可以畫出執行過程的 callgraph (gprof2dot google 一下
06/25 14:42, 28F
文章代碼(AID): #1FvNxHt8 (C_and_CPP)
文章代碼(AID): #1FvNxHt8 (C_and_CPP)