歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux文化

用tags/cscope看內核源代碼-HOWTO


其實內核原代碼的Makefile就包含了make tags/TAGS的選項, 但是生成的tags太大,因為包含了drivers等不常用的目錄。

因此參照內核的Makefile文件,寫了一個Makefile, 用來生成ctags/cscope/etags。

這樣,可以根據自己的需要,刪除和添加目錄。

我以前沒有用過tags/cscope,不知道有沒有更好的方法。歡迎指教。 也請大家補充tags/cscope的常用的和好用的命令,技巧。

一、用法

找一個空目錄,把附件Makefile拷貝進去。 然後在該目錄中選擇性地運行如下make命令:

注:SRCDIR用來指定內核源代碼目錄,如果沒有指定, 則缺省為/usr/src/linux/,如

$ make

將處理/usr/src/linux下的源文件,在當前目錄生成ctags, cscope

1) 只創建ctags

$ make SRCDIR=/usr/src/linux-2.6.12/ tags

2) 只創建cscope

$ make SRCDIR=/usr/src/linux-2.6.12/ cscope

3) 創建ctags和cscope

$ make SRCDIR=/usr/src/linux-2.6.12/

4) 只創建etags

$ make SRCDIR=/usr/src/linux-2.6.12/ TAGS

二、處理時包括的內核源文件:

1) 不包括drivers,sound目錄 2) 不包括無關的體系結構目錄 3) fs目錄只包括頂層目錄和ext2,proc目錄

對2.6.12.1內核,這樣生成的tags大約12M,cscopes大約19M

三、最簡單的ctags命令

---------------------- 1) 進入

進入vim後,用

:tag func_name

跳到函數func_name

---------------------- 2) 看函數(identifier)

想進入光標所在的函數,用

CTRL + ]

---------------------- 3) 回退

回退用

CTRL + T

----------------------

我現在只會用這幾個命令,請大家說說其他常用的命令。

查找標識符

:tag write_

找到以write_開頭的標識符,如果有多個,繼續按,直到找到想要的。

如果想跳到包含block的標識符

:tag /block

然後用來選擇。

這裡'/'就是告訴vim'block'是一個pattern。

如果想在以write_開頭的標識符中選擇一下,

:tselect /^write_

這裡,'^'表示開頭,同理,'$'表示末尾。

多個同名的標識符

如果某個函數有多個定義,':tag'命令會跳到第一個,如果當前文件有,則優先用這個。 然後可以跳到下一個同名的 :tnext

跳到第一個 :tfirst

跳到前count個 :[count]tprevious

跳到後count個 :[count]tnext

跳到最後一個 :tlast

你也可以在所有tagname中選擇: :tselect tagname


摘自:http://www.linuxforum.net/


Copyright © Linux教程網 All Rights Reserved