Linux查看內可源代碼環境的配置

Linux查看源代碼工具的安裝


目的:Linux操作系統中比較吸引人的一部分是系統內核,而如果不對系統內核源
代碼文件進行索引,查看。就會感覺到源代碼牽涉內容較多,結構相對鬆散,故應利用工
具查看代碼,現在已經推出的比較好的是lxr工具配合perl,glimpse。
關鍵詞:lxr glimpse 源代碼
lxr(linux cross reference)就是一個解決這個問題的工具:他對你指定的源代碼文
件建立索引數據庫,利用perl腳本CGI動態生成包含源碼的web頁面,你可以用任何一種
瀏覽器查閱。在此web頁中,所有的變量、常量、函數都以超連接的形式給出,十分方便
查閱。比如你在閱讀/usr/src/linux/net/socket.c的源代碼,發現函數get_empty_inode
不知道是如何以及在哪裏定義的,這時候你只要點擊get_empty_inode,lxr將返回此函數
的定義、實現以及各次引用是在什麼文件的哪一行,注意,這些信息也是超連接,點擊將
直接跳轉到相應的文件相應的行。另外lxr還提供標識符搜索、文件搜索,結合程
glimpse還可以提供對所有的源碼文件進行全文檢索,甚至包括註釋!
下面將結合實例介紹一下lxr和glimpse的基本安裝和使用,由於glimpse比較簡單,
就從它開始:
首先訪問站點:http://glimpse.cs.arizona.edu/ 得到glimpse的源碼,比如我得到的
是glimpse-4.12.5.tar.gz . 用root登錄,在任一目錄下用tar zxvf glimpse-4.12.5.tar.gz
解開壓縮包,在當前目錄下出現新目錄glimpse-4.12.5 .進入該目錄,執行make即可。進
入bin目錄,將文件glimpse和glimpseindex拷貝到/bin或/usr/bin下即可。如果單獨使
用glimpse,那麼只要簡單的執行glimpseindex foo即可,其中foo是你想要索引的目錄,
比如說是/usr/src/linux .glimpseindex的執行結果是在你的起始目錄下產生若干.limpse*
的索引文件。然後你只要執行glimpse yourstring即可查找/usr/src/linux下所有包含
字符串yourstring的文件。
對於lxr,你可以訪問lxr.linux.no得到它的源代碼解包後,遵循如下步驟:
1)修改Makefile中的變量PERLBIN和INSTALLPREFIX,使它們分別爲perl程序的位置
和你想lxr安裝的位置.(此種方式是源代碼形式安裝,版本是lxr-0.3)在我的機器上,
PERLBIN的值爲/usr/bin/perl .至於INSTALLPREFIX,有如下原則,lxr的安裝路徑
必須是web服務器能有權限訪問。因此它的值簡單一點可取/var/www/html/lxr (對於
Apache web server)。
2)執行 make install
3)修改$INSTALLPREFIX/http/lxr.conf : 本實例中是
/var/www/html/lxr/http/lxr.conf
baseurl : http://yourIP/lxr/http/
htmlhead: /home/httpd/html/lxr/http/template-head
htmltail: /home/httpd/html/lxr/http/template-tail
htmldir: /home/httpd/html/lxr/http/template-dir
sourceroot : /usr/src/linux # 假如對linux核心代碼索引
dbdir : /home/httpd/html/lxr/dbdir/ #dbdirk可任意起名,且位置任意
glimpsebin: /usr/bin/glimpse #可執行程序glimpse的位置
4)在$INSTALLPREFIX/http/下增加一個文件.htaccess 內容:
<Files ~ (source|search|ident|diff|find)$> ***
SetHandler cgi-script
</Files>
上面這個文件保證Apache server將幾個perl文件作爲cgi-script.
5)按照lxr.conf中的設置建立dbdir ,按照上例,建立目錄
/home/httpd/html/lxr/dbdir
進入這個目錄執行$INSTALLPREFIX/bin/genxref yourdir
此實例中爲:/var/www/html/lxr/bin/genxref /usr/src/linux-2.6.21
其中yourdir是源碼目錄,比如/usr/src/linux
如果要結合glimpse,則執行glimpseindex -H . yourdir
6)修改 /etc/httpd/conf/access.conf ,加入
<Directory /home/httpd/html/lxr/http>
Options All
AllowOverride All
order allow,deny
allow from all
</Directory>
7)進入/etc/rc.d/init.d/ 執行
killall httpd
./httpd start
8)對生成的索引文件添加所有用戶的讀權限。
Chmod a+r fileidx
chmod a+x xref
9)啓動瀏覽器進入剛纔建立的頁面文件夾,測試是否成功。
點擊serach.html -> source navigation 觀察源代碼文件夾是否顯示出來,繼續測
試變量,函數等超鏈接是否生成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章