<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      閑人草堂

        博客園  :: 首頁  :: 新隨筆  :: 聯系 :: 訂閱 訂閱  :: 管理

      http://blog.csdn.net/intrepyd/archive/2009/05/19/4202312.aspx

      在windows下通常使用source insight閱讀源代碼,本人希望將這項工作轉移到linux下面。在配置并試用vim一段時間后,感覺不是特別滿意。幸運的是,這個挑剔的人并不懶惰,開始嘗試使用強大的emacs。在這里,并不介紹emacs的基本操作以及配置,建議學習emacs自帶的幫助或者閱讀《學習GNU Emacs》,而是與大家分享cscope在emacs中的配置與使用。

      作為菜鳥在開源世界旅行的第一站,即本人的第一篇linux學習筆記,決定向大牛們學習,在正文開始之前注明文章版權和參考文獻,畢竟水文也可以有版權:) 希望本文對您有所幫助,也歡迎您給我提意見和建議。我的郵箱是:intrepyd@gmail.com

       


      版權說明和參考文獻

      1.版權說明

      轉載請注明轉自潘云登的專欄 ,請保證全文轉載,尤其不可省略這一部分。

      2.參考文獻

      cscope-indexer腳本和xcscope.el文件的注釋部分

       


      Cscope

      簡介

      對于瀏覽源代碼來說,在 Emacs 里面也有很多工具可用,比如自帶的 etags 就不錯,不過功能不如 Cscope 強大。它最初是由 Bell 實驗室開發,并且多年以來一直是 AT&T Unix 商業發行版的一部分。它已經被用于管理超過兩千萬行代碼的工程。在2000年4月,多虧了 Santa Cruz Operation, Inc. (SCO) , Cscope 的源代碼在 BSD license 下開放了源代碼Blah~Blah~

      使用Cscope,主要用來回答以下問題:

      Where is this variable used?

      What is the value of this preprocessor symbol?

      Where is this function in the source files?

      What functions call this function?

      What functions are called by this function?

      Where does the message "out of space" come from?

      Where is this source file in the directory structure?

      What files include this header file?

       


      安裝和配置

      1.首先,在系統中安裝Cscope。Linux下,安裝軟件的方式通常有兩種:

      方式一:下載Cscope的源代碼,按照源碼包中的INSTALL說明文件,執行下面的命令進行配置編譯安裝

      ./configure

      make

      make install

      Cscope的源碼包里面有個xcscope.el文件,為(X)Emacs提供了Cscope 接口。它處于源碼包的 contrib/xcscope 目錄下。該目錄下面還有一個名為cscope-indexer的腳本文件,用于創建文件列表和數據庫。

      方式二:利用linux發行版的軟件管理工具進行安裝。我使用的是Jaunty Jackalope(Ubuntu 9.04),只要一條命令,解決所有問題。

      sudo apt-get install cscope

      安裝后,cscope-indexer腳本位于/usr/bin目錄下,xcscope.el被置于emacs默認的load-path下,在我的系統中是/usr/share/emacs/site-lisp。

      2.為了能夠執行cscope-indexer腳本,需要將它放到PATH變量指向的文件夾下,如/usr/bin,并確認該腳本具有執行權限。

      3.把xcscope.el文件放到系統用戶的load-path下。為系統用戶創建文件夾并將其加入load-path的方法是:先創建文件夾,

      mkdir -p ~/.emacs.d/site-lisp/

      然后,在emacs的配置文件~/.emacs中添加

      ;;LOAD_PATH       

      (add-to-list 'load-path' "~/.emacs.d/site-lisp")

      如果沒有該文件,請手動創建。

      4.在.emacs文件中加入下面的語句

      (require 'xcscope)

      或者,你希望只在打開c/c++文件的時候才加載xcscope,可以加入

      (add-hook 'c-mode-common-hook '(lambda() (require 'xcscope)))

      5.xcscope默認的快捷鍵都是綁定到C-c s的前綴上面,如果你經常使用xcscope.el,可以自己進行按鍵綁定,減少擊鍵次數。不要擔心別人笑你懶,xcscope.el的編寫者就鼓勵我們這樣做:-)。具體方法是,在.emacs文件中加入

      (define-key global-map [(control f3)]  'cscope-set-initial-directory)

      (define-key global-map [(control f4)]  'cscope-unset-initial-directory)

      (define-key global-map [(control f5)]  'cscope-find-this-symbol)

      (define-key global-map [(control f6)]  'cscope-find-global-definition)

      (define-key global-map [(control f7)]  'cscope-find-global-definition-no-prompting)

      (define-key global-map [(control f8)]  'cscope-pop-mark)

      (define-key global-map [(control f9)]  'cscope-next-symbol)

      (define-key global-map [(control f10)] 'cscope-next-file)

      (define-key global-map [(control f11)] 'cscope-prev-symbol)

      (define-key global-map [(control f12)] 'cscope-prev-file)

      (define-key global-map [(meta f9)]     'cscope-display-buffer)

      (define-key global-map [(meta f10)]    'cscope-display-buffer-toggle)

      6.重啟emacs,使配置生效。

       


      基本使用

      這里以內核源碼為例,介紹Cscope的基本用法。

      1.首先,在源碼根目錄下,如~/kernerl/linux-2.6.29.3,利用cscope-indexer腳本生成文件列表和數據庫,方法是執行

      cscope-indexer -r

      -r參數表示遞歸檢索子目錄,文件列表和數據庫的默認文件名分別為cscope.files和cscope.out,可以使用-i,-f參數進行修改,請參考man了解腳本參數用法。

      2.激動人心的時刻到了。用emacs打開init/main.c,C-s搜索sched_init函數,將光標停在函數名上,按C-c s d或者先前設置的Ctrl+F6,回車進行查找。結果居然用了35.32秒,汗!原來,Cscope默認在每次進行查找時更新cscope.out。當工程十分龐大時,建議關閉該選項以提高查找速度。方法是在~/.emacs文件中加入

      (setq cscope-do-not-update-database t)

      重復上述操作,結果仍然用了9.89秒,再汗!莫非是我的古董本太慢?

      3.百度一下,你就知道:) Cscope可以通過創建反向索引加速查找,方法是調用Cscope時,使用-q參數。真的假的,一試便知。修改cscope-indexer腳本,將

      cscope -b -i $LIST_FILE -f $DATABASE_FILE

      替換為

      cscope -q -b -i $LIST_FILE -f $DATABASE_FILE

      進入內核根目錄,刪除先前的文件列表和數據庫,重新調用cscope-indexer。這回多生成了兩個文件,cscope.in.out和cscope.po.out。重試剛才的查找,結果只用了0.08秒,大功告成。

      posted on 2011-06-10 20:05  閑人草堂  閱讀(1698)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品国产无套在线观| 99久久亚洲综合精品成人网| 欧美黑人巨大xxxxx| 亚洲性夜夜天天天| 亚洲男人天堂东京热加勒比| 久久精品亚洲日本波多野结衣| 无码乱人伦一区二区亚洲| 国产成人无码免费网站| 亚洲乱码av中文一区二区| 亚洲av精彩一区二区| 日韩av中文字幕有码| 日本少妇xxx做受| 日韩一区二区三区精品区| 国产精品自在自线视频| 性奴sm虐辱暴力视频网站| 国产熟妇另类久久久久久| 亚洲一区二区三级av| 日韩视频中文字幕精品偷拍| 综合色一色综合久久网| 久久久久免费看黄a片app| 在线成人国产天堂精品av| 国产中文三级全黄| 国产线播放免费人成视频播放| 中文字幕亚洲综合久久蜜桃| 扒开双腿猛进入喷水高潮叫声| 国产又色又爽无遮挡免费动态图 | 无码人妻丰满熟妇区毛片| 亚洲精品综合网中文字幕| 亚洲香蕉免费有线视频| 亚洲欧洲一区二区天堂久久| 国产美女高潮流白浆视频| 久久无码人妻精品一区二区三区 | 国产成人午夜福利在线观看| 成人做爰69片免费看网站野花| 国内精品卡一卡二卡三| 欧美丰满熟妇bbbbbb| 欧美日韩精品一区二区视频| 深夜免费av在线观看| 亚洲色大成网站WWW久久 | 日韩高清亚洲日韩精品一区二区| 久久精品国内一区二区三区|