常見源碼搜尋網站介紹及如何嵌入到免費工具VcSmith中使用

來源:互聯網
上載者:User

多年來我養成一個習慣,每開發一個新功能之前,都儘可能先瞭解業界是否有人做過類似的工作,如果已經有軟體能提供類似功能,我會嘗試查閱它的使用者手冊,看別人是怎麼做的。如果遇到某項較通用的功能,會先找幾個源碼搜尋網站,用幾個典型的關鍵詞,比如API函數名,或者為實現某功能最有可能的函數命名,先海搜一通。如果你要開發的東西恰巧有人做過了,而且原始碼都是現成的,當然會狂喜一番,因為無論是借鑒,移植,還原樣照搬,都讓你大幅度節約開發時間。

本文先介紹幾個知名源碼搜尋網站,然後介紹如何將程式碼搜尋功能整合到免費C/C++整合式開發環境VcSmith或專業白盒測試載入器VcTester中,讓日常調測更加方便。

常用的源碼搜尋網站有:

1.         Koders,http://www.koders.com/

使用起來比較方便,原始碼庫也較豐富,支援原始碼的語言比較多,而且支援項目和授權協議搜尋和過濾。

2.         Google Codes,http://www.google.com/codesearch

搜尋大佬搞的東西,不服不行,秉承Google一向簡潔實用的風格。搜尋能力很強,支援用Regex,支援在某語言、某檔案、某包中搜尋,也支援按許可協議搜尋。

3.         Krugle,http://www.krugle.com/

支援源碼語言比較全面,可指定搜尋範圍,如注釋、文檔、函數定義、類定義等,還可搜尋技術文檔、開源項目。

4.         Oreilly Code,http://labs.oreilly.com/code/

如果經常看Oreilly的圖書,那麼這個搜尋對你會非常有用,可以在將近700本Oreilly出版的圖書中搜尋123,000多個範例程式碼,往往書籍中的範例程式碼其實都比較規範和高效,是學習編程的好途徑之一。

5.         gotAPI,http://start.gotapi.com/

側重於Internet編程方面的源碼搜尋,支援包括HTML, CSS, CSS2, Javascript, ActionScript,Google code, XML, XSL, XPath, XSD, PHP, Ruby, Python,Perl, AS, ColdFusion, C, C++, MySQL, PostgreSQL, oracle, Java等在內的眾多程式設計語言。

6.         Codase,http://www.codase.com/

適合搜尋C/C++的開原始碼,可以通過函數名、類名等搜尋。

VcSmith與VcTester都使用CseWin.exe作為它們的使用者介面,將程式碼搜尋功能整合到VcSmith的方法與整合到VcTester完全相同,整合程式碼搜尋後可方便使用者隨時查閱。比如在Koders網站以"XmlEncode"為關鍵詞進行搜尋,顯示頁面如下:


我們希望在VcSmith的整合介面,選中一段代碼,然後按一個快速鍵(比如Shift+F3),立即彈出上述視窗。待整合的操作命令如下:

%IeAppFile% http://www.koders.com/default.aspx?s="%CseCurrText%"

其中“%IeAppFile%”是CSE的系統變數,指示IE瀏覽器的應用程式,“%CseCurrText%”是當前編輯區當前選中的文本。在Option對話方塊的UserTool頁添加如擴充命令:

使用者也可以添加如下命令使每次搜尋都先彈出對話方塊,允許使用者手工調整搜尋單詞,運行命令如下:

%IeAppFile% http://www.koders.com/default.aspx?s="%?+CseCurrText%"

其中“%?+CseCurrText”用來指示每次命令執行前,彈出對話方塊讓使用者修改“%CseCurrText%”的取值。

在VcSmith V3.1.3以後以版本,使用者從PDB匯入工程配置時,上述兩種Koders程式碼搜尋命令已自動整合進來,預設指定的快速鍵分別為“Shift+F3”與“Shift+F4”。

類似的,可以用如下兩個命令整合Google程式碼搜尋:

%IeAppFile% http://www.google.com/codesearch?q="%CseCurrText%"

%IeAppFile% http://www.google.com/codesearch?q="%?+CseCurrText%"

如下命令整合krugle程式碼搜尋:

%IeAppFile% http://www.krugle.org/kse/files?query="%CseCurrText%"

%IeAppFile% http://www.krugle.org/kse/files?query="%?+CseCurrText%"

在VcSmith整合其它源碼搜尋可以類推,本文不贅述。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.