1. 程式人生 > >Source Insight簡單教程

Source Insight簡單教程

原來Instant Contiki主要是用來做模擬的,而Keil和IAR這些編譯工具主要是和開發板銜接,今天師兄推薦我Source Insight軟體,用它來看Contiki的原始碼,之前為這個問題糾結了幾天了。

在網上找了一個教程,出自CSDN的一篇博文,原網址:

作為一個開放原始碼的作業系統,Linux附帶的原始碼庫使得廣大愛好者有了一個廣泛學習、深入鑽研的機會,特別是Linux核心的組織極為複雜,同時,又不能像windows平臺的程式一樣,可以使用整合開發環境通過察看變數和函式,甚至設定斷點、單步執行、除錯等手段來弄清楚整個程式的組織結構,使得Linux核心原始碼的閱讀變得尤為困難。

當然Linux下的vim和emacs編輯程式並不是沒有提供變數、函式搜尋,彩色顯示程式語句等功能。它們的功能是非常強大的。比如,vim和emacs就各自內嵌了一個標記程式,分別叫做ctag和etag,通過配置這兩個程式,也可以實現功能強大的函式變數搜尋功能,但是由於其配置複雜,linux附帶的有關資料也不是很詳細,而且,即使建立好標記庫,要實現程式碼彩色顯示功能,仍然需要進一步的配置(在另一片文章,我將會講述如何配置這些功能),同時,對於大多數愛好者來說,可能還不能熟練使用vim和emacs那些功能比較強大的命令和快捷鍵。

為了方便的學習Linux源程式,我們不妨回到我們熟悉的window環境下,也算是“師以長夷以制夷”吧。但是在Window平臺上,使用一些常見的整合開發環境,效果也不是很理想,比如難以將所有的檔案加進去,查詢速度緩慢,對於非Windows平臺的函式不能彩色顯示。於是筆者通過在網際網路上搜索,終於找到了一個強大的原始碼編輯器,它的卓越效能使得學習Linux核心原始碼的難度大大降低,這便是Source Insight3.0,它是一個Windows平臺下的共享軟體,可以從

http://www.sourceinsight.com/上邊下載30天試用版本。由於Source Insight是一個Windows平臺的應用軟體,所以首先要通過相應手段把Linux系統上的程式原始碼弄到Windows平臺下,這一點可以通過在linux平臺上將/usr/src目錄下的檔案拷貝到Windows平臺的分割槽上,或者從網上光碟直接拷貝檔案到Windows平臺的分割槽來實現。

下面主要講解如何使用Source Insight,考慮到閱讀源程式的愛好者都有相當的軟體使用水平,本文對於一些瑣碎、人所共知的細節略過不提,僅介紹一些主要內容,以便大家能夠很快熟練使用本軟體,減少摸索的過程。

安裝Source Insight並啟動程式,可以進入圖1介面。在工具條上有幾個值得注意的地方,如圖所示,圖中內凹左邊的是工程按鈕,用於顯示工程視窗的情況;右邊的那個按鈕按下去將會顯示一個視窗,裡邊提供游標所在的函式體內對其他函式的呼叫圖,通過點選該窗體裡那些函式就可以進入該函式所在的地方。


由於Source Insight實質上是一個支援多種開發語言(java,c ,c++等等)的編輯器,只不過由於其查詢、定位、彩色顯示等功能的強大,而被我們當成原始碼閱讀工具使用。所以,為了有效的閱讀源程式,首先必須選擇功能選單上的 “Project”選項的子選單“New Project”新建一個專案,專案名稱可以自由選定,當然也可以選擇刪除(Remove)一個專案。當刪除一個專案的時候,並不刪除原有的原始碼檔案,只是將該軟體生成的那些工程輔助檔案刪除。設定之後,將會彈出一個對話方塊如圖2,接受預設選擇,如果,硬碟空間足夠,可以將第一個複選框選上,該選項將會需要與原始碼大致同等的空間來建立一個本地資料庫以加快查詢的速度。

 

點選“OK”按鈕郵苧≡窈螅嵊幸桓魴碌畝曰翱虻觶謖飧齠曰翱蚶錚梢匝≡窠畝戀奈募尤牘こ蹋恢址絞絞峭ü贔ile Name中輸入要閱讀原始碼檔案的名稱,點選“Add”按鈕將其加入,也可以通過其中“Add All”和“Add Tree”兩個按鈕可以將選中目錄的所有檔案加入到工程中,其中“Add All”選項會提示加入頂層檔案和遞迴加入所有檔案兩種方式,而“Add Tree”相當於“Add All”選項的遞迴加入所有檔案,可以根據需要使用,就我來說,更喜歡“Add Tree”一些。由於該程式採用了部分開啟檔案的方式,沒有用到的檔案不會開啟,所以,加入數千個檔案也不用擔心加入的檔案超出程式的所能容忍的最大值,我就是採用“Add Tree”的方式將Linux2.4核心的四千五百九十一個檔案加入的。

加入檔案後,點選一個檔案,可以出現使用介面,如圖4所示,其中,右邊的那個視窗(Linux Project,即工程視窗)預設按照字母順序列出當前工程中所有的檔案。

點選一個檔案就可以開啟該檔案,顯示如圖5所示,進入到右邊的那個視窗分別可以以檔案列表的方式,列出所有的檔案,每個窗體下邊有一排按鈕,左邊的視窗(21142.c)從左至右分別為:按字母順序排列所有標記、按照檔案中行數順序排列標記、按照型別排列標記、瀏覽本地檔案標記、標記視窗屬性。右邊的視窗(Linux Project)從左至右分別為:按字母順序檔案列表、顯示資料夾、按照檔案型別歸類檔案、全部檔案的所有標記列表、按照標記型別歸類標記、跳轉到定義處、顯示標記資訊、瀏覽工程標記、查詢函式呼叫、工程屬性,其中全部檔案的所有標記列表選項可能要一段時間抽取標記,同步到資料庫去,如果開始選擇了建立標記資料庫,將會在今後節省同步時間,最有用的莫過於瀏覽標記資訊和查詢函式呼叫,前者可以通過“Jump”按鈕在不同的地方查詢同樣的標誌,還可以通過“Reference”按鈕結合後者進行全域性的標記查詢。

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

當然,Source Insight 還提供了一些其他常見的便利。比如:右鍵選單幾乎包含了程式的所有功能,可以在編輯視窗為程式加上行號,還可以統計整個工程的程式行數,當然還有功能強大卻用不上自動完成功能,似乎連它的30天試用期也是別有用心――可以迫使你儘可能快速的閱讀源程式,其他一些技巧大家可以在使用過程中慢慢摸索。怎麼樣?愛好讀原始碼的朋友,不妨馬上去下載一個,去開始我們的Linux核心探險之旅吧

相關推薦

Source Insight簡單教程

原來Instant Contiki主要是用來做模擬的,而Keil和IAR這些編譯工具主要是和開發板銜接,今天師兄推薦我Source Insight軟體,用它來看Contiki的原始碼,之前為這個問題糾結了幾天了。 在網上找了一個教程,出自CSDN的一篇博文,原網址: 作

轉:Source Insight入門教程

  Source Insight入門教程 轉載自:http://www.cnblogs.com/olvo/archive/2012/05/04/2483424.html   進入到Temp Pr

Source Insight 經典教程

Source Insight實質上是一個支援多種開發語言(java,c ,c 等等)的編輯器,只不過由於其查詢、定位、彩色顯示等功能的強大,常被我們當成原始碼閱讀工具使用。 作為一個開放原始碼的作業系統,Linux附帶的原始碼庫使得廣大愛好者有了一個廣泛學習、深入鑽研的

source insight使用教程

一 、介面瞭解 1、工具欄 1) 2) a、 藍黑色的箭頭可以轉到你前一次和後一次編輯過得地方 b、可以在不同的查詢結果之間跳轉 c、跳轉行 (ctrl + G) d、跳轉到 ctrl + M的標記處 3) Jump to Definition

Source Insight上手教程

目錄 最近剛參加工作,第一個任務就是檢視專案的原始碼,熟悉程式碼結構。於是乎就簡單學習了Source Insight。在這裡就轉載別人的文章當做自己的筆記,便於自己以後查詢。 為什麼要用Source Insight呢?貌似是因為比完整的IDE要更快

source insight 使用教程

若干年前曾寫個一篇關於source insight巨集的使用文章,放到這裡後就一直沒有理會。過了很久之後,偶然的一次查詢,才知道已經有不少地方引用那篇文章,想來文章還是有一定用處的。 前段時間剛好有空閒時間,於是又寫一篇關於source insight的文章,這次側重於實用

Source Insight入門教程

進入到Temp Project視窗分別可以以檔案列表的方式,列出所有的檔案,每個窗體下邊有一排按鈕,左邊的視窗(secondView.cpp)從左至右分別為:按字母順序排列所有標記、按照檔案中行數順序排列標記、按照型別排列標記、瀏覽本地檔案標記、標記視窗屬性。右下角的視窗(Temp Project)從左

Source Insight 4.0安裝破解及簡單使用

一、安裝與破解 1、下載Source Insight 4.0安裝包    https://www.sourceinsight.com/download/ 2、下載程式破解補丁包  https://pan.baidu.com/s/1irvH-K

linux 下安裝 source insight簡單

1、開啟終端,輸入 apt-get  install wine 安裝wine軟體 2、在   下載source insight 安裝包(內帶註冊碼),解壓,放入linux任意目錄 3、進入source insight 所在目錄,輸入 wine  Si3564Setup.ex

Qt Quick 簡單教程

.com 界面布局 引入 主動 屬性設置 語句 anti 枚舉 異步 上一篇《Qt Quick 之 Hello World 圖文具體解釋》我們已經分別在電腦和 Android 手機上執行了第一個 Qt Quick 演示樣例—— HelloQtQuickApp 。這

fullpage.js簡單教程(一)

style 準備工作 iba 耐心 兼容性 css3 動畫 lin per orm 最近準備做一個全屏滾動的網頁,在網上搜了一堆教程,結果大多都是一些很籠統的使用方法,對我這種耐心不超過3秒的笨蛋來說,很晦澀很籠統,所以打算邊研究邊自己寫個教程,有什麽不懂的,我再回來翻看筆

Source Insight 中文註釋為亂碼解決辦法(完美解決,一鍵搞定)【轉】

ash save sys lan sim edit ext pan character 轉自:http://blog.csdn.net/bjarnecpp/article/details/70174752 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 S

Git和Github簡單教程

發布 code workspace align cal 團隊合作 github init 出現 網絡上關於Git和GitHub的教程不少,但是這些教程有的命令太少不夠用,有的命令太多,使得初期學習的時候需要額外花不少時間在一些當前用不到的命令上。這篇文章主要的目標是用較少的

Source Insight基本使用和快捷鍵

上下 body jump con cat 工具欄 tro 右鍵 ati Source Insight基本使用和快捷鍵   為什麽要用Source Insight呢?貌似是因為比完整的IDE要更快一些,比較利於查看大量的代碼。   軟件的安裝很簡單,設置好

source insight 4.0.086破解

source 恢復 原版 安裝目錄 cnblogs .cn strong 開始 href ---恢復內容開始--- source insight 4.0.086 破解: 首先安裝原版的source insight 4.0.086;這裏自己百度搜索; 安裝完成後,先別打

Source Insight 自定義命令說明

mit sage folder lex following 操作 tex 啟動 %d 1.Custom Command Dialog box Command 顯示當前選中命令的名字. 下拉列表中包含了所有的自定義命令. Run 命令行,當調用自定義命令時,這個命令行就會被執

簡單教程

應用 用戶信息 html lex 調試 his else str add 1. 獲取微信小程序的 AppID 登錄 https://mp.weixin.qq.com ,就可以在網站的“設置”-“開發者設置”中,查看到微信小程序的 AppID 了,註意不可直接使用服務號或訂閱

webpack簡單教程(2)--使用less並生成獨立的CSS樣式

bsp oct console xtra put 項目信息 pub charset entry 在webpack中配置並使用less直接生成css樣式   1、在F盤中創建一個文件夾webpack-less   2、在文件夾中創建index.html <!DOCTY

Linux搭建ftp服務器簡單教程

自己 文章 http 禁止 use -a 登陸 root follow 參考文章:https://www.waitig.com/linux-or-centos-install-vsftpd-and-setup-it.html 步驟概括如下: 安裝:yum install

Git簡單教程

cif 切換 cap 版本回退 修改 master form email local 該筆記總結廖雪峰Git教程, 參考網站: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067