本文參照Linux核心修鍊之道編寫,作者為任橋偉。
Vim就不用多說了,大家都在用。Cscope看軟體名字就知道C+scope,本身設計出來就是為了瀏覽c的代碼的。通過Cscope可以知道諸如某個函數的定義、那些函數調用了它、它調用了那些函數等等。是在控制台學習Linux源碼不可缺少的有力工具。你可以通過閱讀Vim中文協助手冊來瞭解:help if_cscop.txt。
1. 安裝Cscope
從http://cscope.sourceforge.net下載然後編譯安裝
2. 產生Cscope的資料庫
進入你需要查看的源碼的根目錄,比如你要查看的是Linux核心源碼,位於/usr/src/linux下,那麼使用以下命令產生Cscope資料庫檔案
cd /usr/src/linuxcscope –Rbq
R表示把所有子目錄裡的檔案也建立索引;b表示cscope不啟動內建的使用者介面,而僅僅建立符號資料庫;q表示產生cscope.in.out和cscope.po.out檔案,加快cscope的索引速度。
以上命令會產生三個檔案:cscope.in.out cscope.out cscope.po.out
3. 將Cscope資料庫檔案匯入Vim
vim:cs add /usr/src/linux/cscope.out /usr/src/linux
4. Cscope的使用方法
你可以通過閱讀Vim的線上文檔詳細瞭解 :help if_cscop.txt 。我簡單的解釋一下最常用的find命令:
:cs find c|d|e|f|g|i|s|t name
S: 尋找本C代碼符號
g: 尋找本定義
d: 尋找本函數調用的函數
c: 尋找調用本函數的函數
t: 尋找本字串
e: 尋找本egrep模式
f: 尋找本檔案
i: 尋找包含本檔案的檔案
例如尋找main函數的定義
:cs find g main
都知道vim支援縮寫命令格式,你可以使用:cs f g main來代替
註:cscope有跟ctags相似的快速鍵,使用Ctrl+j講跳到游標所在的變數或者函數的定義處,ctrl+T返回。
5. 配置Vim,加速Cscope的使用
首先你要對Vim配置有個初步的瞭解,請參看此文打造你自己的vim--如何配置vim
你用vim開啟你個人根目錄下的vim設定檔
username@ubuntu:~$ vim /home/username/.vimrc
添加如下內容:
if filereadable("cscope.out") cs add cscope.outelseif $CSCOPE_DB != "" cs add $CSCOPE_DBendifset nusyntax onset tabstop=4set autoindentset matchtime=1set hlsearchset cindentset shiftwidth=4set rulerset showmode