Linux 平台下閱讀 Linux 內核源碼好用的工具有哪些?

正在做linux內核驅動開發,感覺source insight的確是個很不錯的瀏覽工具。語法高亮做的很不錯;跟代碼也比較快,特別是像內核這種幾萬個文件的檢索起來速度很快。

但是缺點也比較明顯,不能進行編譯,只能作為純瀏覽,如果需要編譯還要在linux下;對中文的支持很差。

基本上在windows平台上,SI就能滿足日常的閱讀源碼需求了。但是在linux下有沒有好用的工具呢?看到網上有說vim+ctags,或者用Eclipse的。請有使用過linux閱讀內核源碼的盆友們推薦一下吧。


想做到精緻的查找. 用一半的tag是不行的.

可以考慮用bear + rtags. 雖然我沒試過, 我看kernel那會兒還不知道有rtags這種神器.

當時用的是GNU global.

還有個是我最近聽說的, kdeveloper有個kernel開發的插件. 但是我也沒試過...


ctags和cscope是極其落後的。你需要youcompleteme這個級別的vim插件。

不過ctags和cscope在純c方面表現確實可以將就,如果是c++推薦這個組合就是誤人子弟。

我的推薦是,任意buffer插件+ctrlp+youcompleteme+任意窗口插件。


做linux c的誰不知道vim+ctags+cscope


話說沒有人用OpenGrok嗎?


linux下工具是有很多, 但勝過source insight的沒有. source insight在純C項目下的表現不錯.


最近為讀 glibc, valgrind 和 linux kernel 寫了一個 c 代碼瀏覽工具。符號引用信息是直接在編譯時從 gcc 拿到的,修改了 gcc 源碼,寫了一個 gcc 插件。最後作為 vim 的插件使用。https://github.com/yuchenkan/gcc-jump/


emacs+ cscope 爽的不行,非常好用


選擇不要太多:

  1. Scitools Understand

  2. Source Insight On Wine

  3. SlickEdit

  4. Eclipse

  5. Source Navigator

另外寫了一個腳本,將編譯了的源代碼與依賴的頭文件的導出到Filelist,同時自動創建SlickEdit工程,點擊下面地址,裡面有GIF示例:

tonyho/Generate_Kernel_Uboot_Project_forIDE · GitHub


redhat 的 Source Navigator, 跟 Source Insight 差不多,查函數看代碼什麼的都挺好的。

最好只保留一個 x86 架構的代碼,其他架構的刪掉,方便查找函數定義。


樓上有點騷^_^


推薦一個網址 http://lxr.free-electrons.com。用web的好處是你不需要下載源碼,不需要配置符號表


sublime + plugin + ctags


GNU Emacs + GNU Global


gtags + vim 徹底解決目錄嵌套問題


無非是定義跳轉,把握代碼結構。優秀程序員應該在大腦中完成這些工作,最低限度依賴工具。


用過 vim+ctags+cscope 的飄過!


推薦閱讀:

為什麼Linux桌面環境往往對顯卡支持不好而各個顯卡廠商、發行版廠商不為Linux開發驅動呢?
基於Linux開發的操作系統有哪些?安卓是基於哪個Linux版本開發的呢?
linux設備模型,如何實現/dev/xxx/xxx?
OS boot 的時候為什麼要 enable A20?
計算機行業領先的公司大多在美國,Linux為什麼卻是芬蘭人發明的?

TAG:文本編輯器 | Linux內核 |