字體:小 中 大 | |
|
||
2007/02/01 01:10:50瀏覽4949|回應1|推薦9 | ||
Source Insight Source Navigator lxr. 原來是用在 Linux 的 Source Code Tracing, 不過用在大型的系統上面也很好用, 網址在 http://lxr.linux.no/ grep這個工具來協助我追蹤原始碼中的識別字(變數名稱、函式名稱、類別名稱)提供了regular expression的比對。在Windows上使用的是grep32, ctags的工具。這個工具不單只是文字層次的搜尋,由於它本身就具備了各種程式語言的parser,所以可以在語法層次上進行處理。ctags這個工具,它會對指定的原始碼進行索引的動作,而且只會處理被視為language object的東西,日後的檢索,皆至索引中進行搜尋,因此效率也會更好。對C/C++來說,它可以處理的tag類型包括:class names, macro definitions, function definitions, class, interface, struct, and union data members,... 等等。 除此之外,它也整合了各種編輯器(vi, vim, UltraEdit…),還支援了33種程式語言。 gtags(GNU GLOBAL source code tag system)的工具,覺得值得推薦。gtags的基本精神和ctags相像,但是不同的是,它和編輯器本身是獨立的。 安裝完後,即可執行它所附的gtags.exe,即會針對指定的目錄進行索引建立的動作。動作完成後,相關的索引檔案即會產生(包括:GPATH, GRTAGS, GSYMS, GTAGS)。再利用global.exe即可進行相關的搜尋,例如搜尋ffmpeg專案中定義AVStream的檔案,可以輸入global –x AVStream 其輸出即為
就會得到以下之類的結果。
此外,它提供的htags更是一大福音。因為它可以幫你把整個索引的內容,製作成HTML的形式。包括幫你找出所有程式的入口點(很多專案裡,有main()的檔案不少)、所有定義,並且為你整理出所有的原始碼檔案。憑藉著HTML超連結的特性,閱讀追蹤起來十分容易,就這一點來說,就像是另一個原始碼的分析工具-doxygen一樣。當我們在檢視AVStream的定義時,看到了AVStream含有AVRational的欄位,只要再沿著AVRational的link前進,即可進到AVRational的定義位置,這相當符合追蹤原始碼時的許多行為。我個人強力推薦大家使用。 |
||
( 休閒生活|旅人手札 ) |