Source Insight閱讀linux內核源代碼——根據其他文章修改

Step 1:安裝Source Insight並啓動程序

可以進入圖1界面,在工具條上有幾個值得注意的地方,如圖所示,圖中內凹左邊的是工程按鈕,用於顯示工程窗口的情況;右邊的那個按鈕按下去將會顯示一個窗口,裏邊提供光標所在的函數體內對其他函數的調用圖,通過點擊該窗體裏那些函數就可以進入該函數所在的地方。

圖1 Source Insight界面圖

由於Source Insight實質上是一個支持多種開發語言(java,c ,c++等等)的編輯器,只不過由於其查找、定位、彩色顯示等功能的強大,而被我們當成源代碼閱讀工具使用。

Step 2:新建項目

首先必須選擇功能菜單上的 “Project”選項的子菜單“New Project”新建一個項目,項目名稱可以自由選定,當然也可以選擇刪除"Remove"一個項目。(PS:當刪除一個項目的時候,並不刪除原有的源代碼文件,只是將該軟件生成的那些工程輔助文件刪除。)設定之後,將會彈出一個對話框如圖2,接受默認選擇,如果,硬盤空間足夠,可以將第一個複選框選上,該選項將會需要與源代碼大致同等的空間來建立一個本地數據庫以加快查找的速度。

圖2 工程設置

Step 3:添加文件

點擊“OK”按鈕,接受選擇後,將會有一個新的對話框彈出,可以選擇將要閱讀的文件加入工程,一種方式是通過在File Name中輸入要閱讀源代碼文件的名稱,點擊“Add”按鈕將其加入,也可以通過其中“Add All”和“Add Tree”兩個按鈕可以將選中目錄的所有文件加入到工程中,其中“Add All”選項會提示加入頂層文件和遞歸加入所有文件兩種方式,而“Add Tree”相當於“Add All”選項的遞歸加入所有文件,可以根據需要使用,此處選擇“Add Tree”,由於該程序採用了部分打開文件的方式,沒有用到的文件不會打開,所以,加入數千個文件也不用擔心加入的文件超出程序的所能容忍的最大值。
圖3 添加文件

Step 4:同步文件

點擊[Project], 在下拉列表中單擊[Synchronize File...]選項,此過程需要20~30分鐘左右。


Step 4:窗口說明

加入文件後,點擊一個文件,可以出現使用界面,如圖4所示,其中,右邊的那個窗口(Linux Project,即工程窗口)缺省按照字母順序列出當前工程中所有的文件。

圖4 工作窗口

點擊一個文件就可以打開該文件,顯示如圖5所示,進入到右邊的那個窗口分別可以以文件列表的方式,列出所有的文件,每個窗體下邊有一排按鈕。

左邊的窗口(21142.c)從左至右分別爲:按字母順序排列所有標記、按照文件中行數順序排列標記、按照類型排列標記、瀏覽本地文件標記、標記窗口屬性。

右邊的窗口(Linux Project)從左至右分別爲:按字母順序文件列表、顯示文件夾、按照文件類型歸類文件、全部文件的所有標記列表、按照標記類型歸類標記、跳轉到定義處、顯示標記信息、瀏覽工程標記、查找函數調用、工程屬性,其中全部文件的所有標記列表選項可能要一段時間抽取標記,同步到數據庫去,如果開始選擇了建立標記數據庫,將會在今後節省同步時間。

最有用的莫過於瀏覽標記信息和查找函數調用,前者可以通過“Jump”按鈕在不同的地方查找同樣的標誌,還可以通過“Reference”按鈕結合後者進行全局的標記查找。

Reference功能是Source Insight的特色之一,它可以在速度極快的在整個工程中找到所有的標記,並且在該行程序的前邊加上紅色箭頭的小按鈕鏈接上。圖6是一個Reference搜索後的結果,它可以有兩種模式,一種集中顯示結果,圖6顯示的就是這種模式,在這種模式下,可以通過前邊的紅色箭頭小按鈕進入另外一種模式,該標記的具體的所在處,也可以通過標記的具體所在處點擊紅色箭頭小按鈕進入警種模式,還可以通過工具條上的兩個紅色小箭頭直接在第二種模式下前後移動,察看相應信息。它的這個強大的功能使得閱讀Linux源程序有如神助。但是要注意的是,當進行了第二次“Reference”時,它會提示你將結果集附加在第一個結果集的後邊還是取代第一個結果集。如果選擇前者,不能對結果集根據前後兩次搜索結果進行分類,然後在其子類裏進行移動,只能在整個結果集裏移動;如果,選擇後者,結果集將會被替換爲第二次搜索的結果,略微有些不方便。
圖6 Reference的搜索結果


當然,Source Insight 還提供了一些其他常見的便利。比如:右鍵菜單幾乎包含了程序的所有功能,可以在編輯窗口爲程序加上行號,還可以統計整個工程的程序行數,當然還有功能強大卻用不上自動完成功能。


參考原文:http://hi.baidu.com/pp2016001/blog/item/7bfbef0958bd0281d0581b6f.html

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