• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            就C++開發(fā)工具而言,與Windows下微軟(VC, VS2005等)一統(tǒng)天下相比,Linux/Unix下C++開發(fā),可謂五花八門,各式各樣。Emacs, vi, eclipse, anjuta,kdevelop等層出不窮。
            Windows下,開發(fā)工具多以集成開發(fā)環(huán)境IDE的形式展現(xiàn)給最終用戶。例如,VS2005集成了編輯器,宏匯編ml,C 
            /C++編譯器cl,資源編譯器rc,調(diào)試器,文檔生成工具, nmake。它們以集成方式提供給最終用戶,對于初學(xué)者而言十分方便。但是,這種商業(yè)模式,直接導(dǎo)致用戶可定制性差,不利于自動化,集成第三方工具的能力弱。例如,無法定制一些宏來處理一些重復(fù)操作;體會不到自動化makefile一步到位快感;無法遠(yuǎn)程登錄到服務(wù)器上進(jìn)行開發(fā);無法使用某種”粘合劑”來把第三方工具(例如,文本工具,字符串工具)有效地調(diào)用起來。可以說,良好的商業(yè)支持和傻瓜式開發(fā),是它們主要的優(yōu)點。
            在linux下,開發(fā)工具被切割成一個個獨立的小工具。各自處理不同的問題。例如,編輯器(emacs, vim)用來進(jìn)行編輯程序的,調(diào)試器(gdb)用來調(diào)試程序,編譯器(GCC)用來編譯和鏈接程序的,性能分析工具(gcov, gprof)用來優(yōu)化程序的,文檔生成器(doxygen)用來生成文檔的。同時,還有一些系統(tǒng)工具和系統(tǒng)知識,我們是很有必要了解的:程序自動化機(jī)制 makefile,系統(tǒng)粘合劑shell,系統(tǒng)查找工具grep, locate, find。其它的工具(例如ctags, OCI公司的MPC等等),一旦熟練掌握,它們將成為你手中的利器。
            本文主要是一些針對LINUX下開發(fā)工具使用的經(jīng)驗之談。由于,工具品種繁多,我們沒有能力也沒有必要一一介紹。對于LINUX下IDE工具,例如 eclipse, anjuta等,它們雖然也很實用,但是使用起來比較簡單,而且目前還算不上主流。所以,它們將不被著重介紹。同時,本文也不打算寫成各個工具的操作手冊,只著眼于介紹各個工具的想要解決的問題、運行機(jī)理和主要特性。
            正文
            編輯器
            要進(jìn)行開發(fā),第一件事情就是選擇一個合適的編輯器。編輯器選擇有幾個要素:
            1)減少不必要的編輯動作,減少編輯的時間。
            一切能夠無二義性描述出來的編輯任務(wù),都可以而且應(yīng)該能被自動化。例如,每一個C++程序都會有一個main函數(shù);我們在定義.h文件時,都希望加入一些預(yù)處理指令#define來幫我們解決重復(fù)引用同一個頭文件而帶來的麻煩。鼠標(biāo)操作總是比鍵盤操作要慢的。這方面EMACS做得可算是到了極致。所以, EMACS用戶經(jīng)常會吹噓:他們編輯的速度等同于他們思考的速度。
            2)可擴(kuò)展性高。
            程序員預(yù)期的編輯器應(yīng)該能提供一些編程的幫助,例如,語法高亮,自動補齊,自動排版,語法檢查等等。留心觀察一下gedit, vim, emacs, ultraEdit,就會發(fā)現(xiàn)它們提供的遠(yuǎn)不是windows 記事本,寫字板提供的那么簡陋的功能。對于一種新的語言,新的語法,它們應(yīng)該能很方便地提供支持,而不停留在一種或幾種固定的語言上。
            3)用戶可定制性高。
            如果想長期從事研發(fā), 特別是linux
            /unix下研發(fā)的話,那么你很有必要學(xué)好一個功能足夠的編輯器。有這么一句話:Linux下程序員分為三種,使用emacs的,使用vi的,還有其它。
            EMACS是Stallman用lisp語言寫的一個GPL的編輯器。我們這里所說的emacs指的是GNU emacs,而非Xemacs。由于它的開放性,我們可以把它打造成一個功能強大的IDE。我們在安裝好CGYwin之后,也可以在Windows系統(tǒng)下使用 EMACS。CGYwin和MINGW是第三方寫的一個在Windows系統(tǒng)上模擬POSIX系統(tǒng)的工具。
            EMACS與其說的是一個編輯器,倒不如說它是一個操作系統(tǒng)。我們可以用它來寫編程,寫wiki,收發(fā)郵件等等。EMACS主要是通過兩種方式來進(jìn)行擴(kuò)展:el腳本(elisp是lisp的一種方言)和第三方擴(kuò)展包。EMACS的入門成本很高。由于是純鍵盤操作,所以需要記憶大量的快捷鍵;功能強大是通過用戶添加一些擴(kuò)展包,lisp腳本來實現(xiàn)的。如何正確配置和修改是很需要耐心和技巧的。
            編譯器
            編譯器首選GCC(GNU COMPILER COLLECTION)。原因有兩個,它是GNU開源的,同時它對標(biāo)準(zhǔn)C
            ++的支持度高達(dá)96.15%。而VC++6.0的支持度只有83.43%。 GCC不僅是通常意義上的C或C++的編譯器,它還可以編譯java等其它語言。gcc是gnu c的編譯器,g++是gnu c++的編譯器, 而EGCS(Enhanced GNU Compiler Suite)可以認(rèn)為是gcc的改進(jìn)版。
            編譯語言從源程序到目標(biāo)代碼會經(jīng)過如下幾個階段:源程序->匯編程序->編譯成obj程序-
            >鏈接成最終可執(zhí)行程序。我們可以通過一條編譯指令來完成所有步驟。也可以分步執(zhí)行。gcc有三個重要選項-E(只進(jìn)行預(yù)處理), -S(生成匯編代碼), -g(生成帶原代碼調(diào)試符號的可執(zhí)行文件,如果想用gdb調(diào)試的話,就應(yīng)該在編譯時打開這個選項)。
            GCC可以看作一個軟件包,除了編譯工具,它還集成了調(diào)試器gdb,性能分析工具gcov, gprof。只要我們裝好了GCC,這些強大工具就可以直接使用了。
            通過gcov,我們可以查看一個程序,源代碼中每行代碼的運行次數(shù)。我們優(yōu)化運行次數(shù)最多的代碼,那么就可以大大優(yōu)化程序。使用gcov時,需要打開 GCC的fprofile
            -arcs和ftest-coverage兩個選項。gcov中常用的選項有-b分支統(tǒng)計信息。
            通過gprof工具,我們可以查看函數(shù)之間的調(diào)用順序,及各個函數(shù)運行的時間。我們可以將gprof理解為linux
            /unix自帶工具time的加強版。使用gprof時,需要打開GCC的pg選項。
            gcov和 gprof的共同點是在編譯程序時,加入自己的一些輔助信息,由此來進(jìn)行程序診斷。除了,這些優(yōu)化手段,我們還可以使用一些內(nèi)存泄漏工具,來減少野指針,未釋放的內(nèi)存空間。
            調(diào)試器
            GDB即GNU的調(diào)試器,它是GCC附帶的一個性能優(yōu)質(zhì)的調(diào)試器。通過GDB和腳本結(jié)合,我們可以很好的實現(xiàn)回歸測試。
            GDB可以運行于CLI和GUI兩種模式。默認(rèn)GDB是CLI模式的,我們可以去下載和安裝GUI模式的GDB,例如xxgdb, ddd等。一個更好的方式是在 EMACS中使用GDB。GDB包括visual studio工具的所有調(diào)試功能,還包括它沒有的功能。它除了支持,我們一般的設(shè)置斷點,單步跟蹤,step 
            in, step out, step over等,還有一些強大的功能。在gdb中,我們可以有以下幾種暫停方式:斷點(BreakPoint)、觀察點(WatchPoint)、捕捉點(CatchPoint)、信號(Signals)、線程停止(Thread Stops)。
            下面列舉幾個讓我印象深刻的功能。
            1)通過 watch指令,可以讓程序在某個變量的值發(fā)生變化時,暫停下來。2)通過print指令,在程序運行時,設(shè)置變量的值,運行一個程序自身支持的一個方法。3)通過until指令,我們可以讓程序在運行到某個程序時暫停下來。4)通過break.. if指令,使得程序在滿足某個bool表達(dá)式時,暫停下來。
            粘合劑
            我想通過“粘合劑”這個詞來表達(dá)將多個工具粘合起來的“膠水”。例如,通過shell腳本,我們可以把OS命令,sed指令,awk指令,其它腳本文件等串聯(lián)起來,發(fā)揮它們的合力。在linux C
            ++編程中,我們不可避免地會使用makefile文件。通過,它我們可以把編譯指令,生成文檔操作,清除操作等等串聯(lián)起來。從某種意義上來看,它也相當(dāng)于一個粘合劑。
            makefile的出發(fā)點是,維護(hù)好一個項目中眾多文件的依賴關(guān)系,由此得到一個源程序的拓?fù)鋱D。當(dāng)我們只修改圖中某個結(jié)點時,重新編譯時就只需要將拓?fù)鋱D中關(guān)聯(lián)的鏈路進(jìn)行編譯就好了。由此,大大縮短了編譯的時間。make有兩大概念:dependencies和rules。規(guī)則rule即針對每一個依賴關(guān)系 dependency定義一個操作規(guī)則。這個細(xì)粒度的分離,就可以使我們可以定制軟件構(gòu)建的行為。例如,修改使用的編譯器,修改includepath, 修改libpath, 修改編譯選項等等。我們常見的VC中的nmake,功能和make是類似的。
            make使用的重點和難點是編寫Makefile文件。Makefile的語法相對其它語言來說是很不一樣的,我們要特別注意TAB鍵和空格鍵的區(qū)別。有很多工具可以用來幫助我們生成Makefile。最出名的就是GNU的autoconf了。一個GNU程序的編寫,需要autoscan, aclocal, autoconf, automake這四個工具。
            我們知道GNU軟件安裝的三步曲是:.
            /configure, make, make install。其中./configure就是根據(jù)autoconf, alocal等工具生成一個makefile文件。make指令就是調(diào)用make指令來根據(jù)makefile文件的規(guī)則來編譯源程序。而make install就是執(zhí)行makefile中的install規(guī)則指出的操作(一般是copy操作)。而make clean就是執(zhí)行makefile中的clean規(guī)則指出的操作(一般是rm操作)。我們用Eclispe+CDT開發(fā)Managed C++ Project時,它就是通過objects.mk,subdir.mk,sources.mk三個文件來生成Makefile。我們注意觀察編譯時的輸出信息,就可以看到顯示的Makefile文件的內(nèi)容。
            可以說,如果想編譯出跨平臺的C++程序,那么makefile是一種最方便的機(jī)制。
            OCI公司為Douglas C.Schmidt的ACE,TAO開源社區(qū)編寫了一段偉大的perl腳本--MPC。它由平臺信息,一個規(guī)則文件,源代碼,生成用戶想要的工程文件,例如Make, Nmake, Visual C
            ++ 6, Visual C++ 7等等。Google Web Tookit, Celtix做的事情與之類似,不過它們是針對JAVA的,而MPC是針對C++的。
            結(jié)束語
            國內(nèi)資料太多的低層次的重復(fù),經(jīng)常是一個網(wǎng)頁被多次轉(zhuǎn)載,而且回答問題時深度不夠。個人找資料的順序是:查看quick start或how to文檔->自帶的幫助(如果看起來不太吃力話)->百度查一下中文網(wǎng)頁,來理清一下基本概念->google查一下->幾個大的,相關(guān)的網(wǎng)站查下資料->看自帶幫助。再者,面對面的交流是十分重要的,大家可以相互理一下概念,交流一下心得。可惜,我身邊這種氛圍還是不夠。
            Linux下開發(fā)還可以更友好一些。個人感覺, linux開發(fā)要在國內(nèi)普通程序員中大規(guī)模普及,還有一段很長的路要走。ubuntu火爆的主要原因,就是它幫用戶搭好一些默認(rèn)配置。用戶如果想新加一些服務(wù),它們提供了良好,有效地支持。所以,我想我們可以在IDE和現(xiàn)在linux這種一個個小部件的這兩種狀態(tài)之間,取一個折衷。也就是針對幾種主要需求的用戶,發(fā)布一些配置好的環(huán)境。尤其是emacs的各種el腳本(例如界面主題的color
            -theme, C/C++語言編輯策略,代碼樣式設(shè)置腳本,各種emacs系統(tǒng)設(shè)置), 第三方擴(kuò)展包(模板template, 編程支持包cedet等)。每一個用戶浪費時間來進(jìn)行這些配置是十分沒有意義的!工具始終只是工具,我們不能淪為工具的奴隸,不能把一大部分精力浪費在配置工具上。
            值得注意的是現(xiàn)在方興未艾的eclipse有向這方面邁進(jìn)的趨勢。但是,現(xiàn)在emacs已經(jīng)做得很好了,ecilpse能否超越它,我們還有待觀察。我們可以通過在eclipse上安裝SDT插件來進(jìn)行C
            ++開發(fā)。但是,它目前還不支持調(diào)試功能,而且不太穩(wěn)定,功能不夠強。例如,有時會無故死掉;如果想通過eclipse來轉(zhuǎn)向函數(shù)原型的話,那么迎接你的將是一個漫長、焦急的等待。
            由于本人缺少在linux下進(jìn)行實際大規(guī)模程序的開發(fā)經(jīng)驗,對很多工具和機(jī)制的理解還比較膚淺。對它們的熟悉程度離真正實用,還有一段很長的路要走。
            我之前是一個C程序員,而且是個Windows的程序員,在windows下使用VC6.
            0/VS2005等microsoft的傻瓜式工具工作, 對于那個vc 6.0/vs2005的快捷操作,debug操作是那么的熟悉,可以說vc 6.0/vs2005是window下開發(fā)c/c++最好用的工具了,可以查看調(diào)用堆棧,內(nèi)存變化情況,變量值,另外安裝 visual assist x后讓VC看起來是那么的完美。
            但是windows下寫成代碼到了linux下是有問題的,所以建議在vc中將工具
            -》選項—》制表符—》制表符大小4,插入空格,另外的問題就是 那個回車換行的問題,例如windows下是0d,0a,到了linux下用vi看到的都是^M,給別人帶來不便,所以如果提交的服務(wù)器是linux,而 你是在windows下開發(fā),可以在svn/cvs中進(jìn)行設(shè)置,就可以自動進(jìn)行dos2unix的轉(zhuǎn)換,相關(guān)的文檔可以查看svn/cvs的相關(guān)手冊,其 中都有這樣的設(shè)置。
            有幸這次我轉(zhuǎn)到了Linux下開發(fā),有幸認(rèn)識了linux,但是隨之而來的就是特別頭疼的問題:Linux下使用什么工具進(jìn)行編碼,編譯, debug呢??我感到非常的迷茫,然后就是網(wǎng)上大搜索,看到那么多的網(wǎng)友推薦VIM時,我失望了,特別的失望,然后用VIM敲了一個下午,累的手的麻 了,感到特別的不爽,就像是用左手拿筷子一樣,全身的力量無法施展,所以 我還是計劃再找找看。不過后來我還是找到了適合自己的工具。呵呵,真是太高興了,今天把我自己這幾天搜集的一些資料整理一下,給以后轉(zhuǎn)向linux的程序 員一點提示吧
            !
            主要的工具如下:
            1. vim + ctags + taglist + cscope + cppcomplete + global
            這個我也試過了,比較有用的帖子如下:
            http:
            //www.linuxsir.org/bbs/showthread.php?t=241578
            http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx
            但是這個要記大量的命令,不過還好,這些命令有兩三天就可以記住了,
            我這里有個簡單的冊子:
            2、文本的操作
            ~
            :e
            ! file1 在當(dāng)前文件下編輯新的文件
            :r 
            /etc/passwd 實現(xiàn)文件的讀入功能
            :wq 保持并退出
            :q
            ! 強行退出
            O :重起一行
            U:撤銷 : C
            -R :重做
            dd 刪除一行 d$刪除行后的
            e:移動單詞 ge 
            ?—– –à e
            %:括號匹配
            33G:跳到33行
            gg :跳到第一行
            C
            -/C-I來回跳轉(zhuǎn)
            H –HOME L –last
            ma :定義標(biāo)簽 a,‘a:回到a
            C
            -V文本塊操作
            /\
            yy :復(fù)制一行,p:粘貼
            ^ 將光標(biāo)快速跳轉(zhuǎn)到本行的首行字符
            $ 將光標(biāo)快速跳轉(zhuǎn)到本行的行尾字符
            :m,ny 復(fù)制第m行到第n行之間的文本到VI緩沖區(qū)

            5.3、替換操作
            :s
            /old/new 替換當(dāng)前行的第一個字符old為字符new
            :s
            /old/new/g 替換當(dāng)前行的所有字符old為字符new
            :m,ns
            /old/new/g 替換當(dāng)前行號m到行號n的所有字符old為字符new
            :
            %s/old/new/g 替換整個文本的所有字符old為字符new

            5.7、使用替換的確認(rèn)功能
            :s
            /old/new/c 替換當(dāng)前行的第一個字符old為字符new并提示用戶確認(rèn)操作
            :s
            /old/new/gc 替換當(dāng)前行的所有字符old為字符new并提示用戶確認(rèn)操作
            :m,ns
            /old/new/gc 替換當(dāng)前行號m到行號n的所有字符old為字符new并提示用戶確認(rèn)操作
            :
            %s/old/new/gc 替換整個文本的所有字符old為字符new并提示用戶確認(rèn)操作
            :edit foo.txt —編輯另一個文檔
            :next 進(jìn)行文件切換
            C
            -W 切換窗口
            vimdiff main.c
            ~ main.c
            :g
            +//+s/foobar/barfoo/g
            CTags:
            Ctags –R
            /ctags *
            :
            set tags =/../tags
            :Tlist
            F3查找
            :make
            :cw :cn :cp
            mm 標(biāo)簽,F(xiàn)2 切換
            cscope –Rbq
            :cs add 
            /../cscope.out /../
            :cs find g xxx
            :cs find c vim_strsave
            :cw
            按tab鍵自動補全。
            缺點是: 自動補全功能麻煩,必須先建立ctags,寫代碼還是很累,我寫了一下午,寫的手都麻了。出錯檢查 啊,括號自動匹配啊,
            單詞補全功能啊,都不滿意,另外對C
            ++的支持不好。
            比如我剛寫了2個config.h,config.cpp,這2個文件
            沒有進(jìn)行CTAG,CSCOPE操作,就不能單詞補全,括號匹配不能檢測,不知道是我配置有問題還是怎么回事啊。
            另外不能進(jìn)行DEBUG,所以我只能放棄。
            2.emacs+插件
            可以查看
            http:
            //blog.163.com/yu_hongchang/blog/static/3989413820081121512613/
            這個我沒有試驗,估計和vim一樣,都是命令操作,聽說這個功能強大一些,能夠通過xterm進(jìn)行調(diào)試,這個我之前用過,但是那個xterm真的不怎么好用,界面,鼠標(biāo),我都不喜歡。
            3. kdevelop
            這個工具做的比較差勁吧,我也不喜歡,比如他的自動補全功能很不爽,比如:有個函數(shù)
            Int test(
            int c1,int c2)
            當(dāng)我們敲下 tes時,只能出現(xiàn)test,而后面的參數(shù)列表都不能顯示,所以當(dāng)代碼量比較大,函數(shù)參數(shù)比較多的時候,我們都記不住參數(shù),沒有參數(shù)列表提示,就會覺得很不爽。不過還好,它集成了kgdb可以進(jìn)行debug.
            4.eclipse +cdt
            好多人用這個IDE,還算好吧,但是eclipse是個java的,運行速度慢的很,另外單詞補全功能太差勁了,只能補全結(jié)構(gòu)體或者類,在寫下.
            / ->之后才能補全,另外要按 control+/ 才能補全,不能在敲代碼的同時自動顯示,eclipse對c/c++的支持遠(yuǎn)遠(yuǎn)不如對JAVA的支持強大,但是我至少認(rèn)為比在vim中寫要舒服一些,可能 是個人習(xí)慣了那個IDE的工作環(huán)境。
            5.code::blocks
            可以查看:
            http:
            //www.codeblocks.org/
            支持的平臺不全,我的是redhat 企業(yè)版 5.0,就安裝不上,所以我也沒有能夠一睹它的芳容,可惜啊。
            6. anjuta
            這個我下載了安裝不上,不知道為什么,而且要求配置的比較多,也比較麻煩,如果你感興趣,可以看
            http:
            //hi.baidu.com/my2008space/blog/item/140de5255fab81084c088d1e.html
            7. Kylix
            這個沒有試。
            8.netbeans
            這個也不錯,我裝過試了試,能滿足我的功能,但是可定制稍微差點,但是能滿足需要了,也還不錯吧,如果沒有下面要提到的slick edit,我就會選擇它了。
            9.windows ue+ssh
            有很多的人用這個方法,我不太喜歡,可能是不喜歡ue那個界面吧,應(yīng)該和vim之類的類似。
            10.slick edit
            呵呵,我最終選擇的是這個,很好用,可定制性強,支持的語言多,非常的好用,能夠直接進(jìn)行debug,而且速度也很快,界面和vc 
            6.0很相似,是一個唯一可以和 vc 相媲美的工具,但不是免費的,不過還是要感謝那些的黑客,讓這個軟件得到了破解,
            你可以通過下面的鏈接下載:
            http:
            //www.slickedit.com/content/view/409/239/
            下載SlickEdit v14.0.2.2
            然后到http:
            //download.csdn.net/source/1481066
            去下載破解的文件,然后覆蓋就可以了。
            這個工具非常的好用啊,大家可以試一試啊,
            這個工具最好的地方就是可以查看memory的情況,這點我喜歡。呵呵
            11.編譯工具和DEBUG工具
            主要的編譯工具都是gcc,當(dāng)代碼量大的時候就要寫makefile了,另外的調(diào)試工具主要都是gdb,這些可視化的IDE基本都是包裝了gcc, gdb。所以slickedit對于我這種剛轉(zhuǎn)到Linux,對makefile不熟悉的人來說無疑是一根救命的稻草,能讓我很快的進(jìn)入工作狀態(tài),當(dāng)然, 你只是把它當(dāng)成編輯的工具,也會發(fā)現(xiàn)它能大大縮小你編碼的時間,讓你的手不會因為寫代碼而感到疲憊。
            終于塵埃落定,以后我要用slickedit來開始我的Linux之旅了。
            1. c/c++編譯器 gcc/g++    
            詳情請參考網(wǎng)站:http:
            //gcc.gnu.org/
            2. UML建模工具 Bouml
            linux下比較好用的建模工具,相當(dāng)于windows下的rational rose,具成了程序UML模型設(shè)計,代碼編輯,代碼生成功能等功能.
            詳情請參考網(wǎng)站:http:
            //bouml.free.fr/
            3. makefile文件編寫工具 :autoconf,automake
            無論是在Linux還是在Unix環(huán)境中,make都是一個非常重要的編譯命令。不管是自己進(jìn)行項目開發(fā)還是安裝應(yīng)用軟件,
            我們都經(jīng)常要用到make或 make install。利用make工具,我們可以將大型的開發(fā)項目分解成為多個更易于管理的模塊,
            對于一個包括幾百個源文件的應(yīng)用程序,但是如果通過查閱make的幫助文檔來手工編寫Makefile,對任何程序員都是一場挑戰(zhàn)。
            幸而有GNU 提供的Autoconf及Automake這兩套工具使得編寫makefile不再是一個難題
            使用make和 makefile工具就可以輕而易舉的理順各個源文件之間紛繁復(fù)雜的相互關(guān)系,autoconf,automake一般配合libtool使用。
            詳情請參考網(wǎng)站:
            http:
            //www.ibm.com/developerworks/cn/linux/l-makefile/
            http://www.gnu.org/software/autoconf/
            http://www.gnu.org/software/automake/
            http://www.gnu.org/software/libtool/
            4. 調(diào)試工具:gdb
            在window下編程,調(diào)試工具已經(jīng)具成到VS環(huán)境,在linux
            /Unix下調(diào)試則通過gdb來調(diào)試,個人覺得gdb調(diào)試比vs調(diào)試高效很多。
            詳情請參考網(wǎng)站:http:
            //www.gnu.org/software/gdb/
            5. 內(nèi)存泄漏工具:valgrind
            對于動則成千上萬行的代碼,很難通過手工的方式去保證內(nèi)存沒有泄漏,
            valgrind通過內(nèi)存申請、釋放匹配的原則來檢測內(nèi)存泄漏,內(nèi)存越界的BUG。當(dāng)然,良好的編程習(xí)慣也是保證代碼質(zhì)量高效必不可少的條件。
            參考網(wǎng)站:http:
            //valgrind.org/
            6. 源代碼管理工具:svn
            軟件開發(fā)不再是個人大師的年代,都是以團(tuán)隊的方式來開發(fā),如何保證代碼的同步,協(xié)同開發(fā),svn給我們提了很好的幫助。
            詳情請參考網(wǎng)站:http:
            //svncorp.org/
            7. 網(wǎng)絡(luò)協(xié)議分析工具:wireshark
            編寫網(wǎng)絡(luò)程序,就不可避免要處理網(wǎng)絡(luò)協(xié)議,分析網(wǎng)絡(luò)數(shù)據(jù).wireshark提供了關(guān)于網(wǎng)絡(luò)層和上層協(xié)議的各種信息。
            命令行下分析網(wǎng)絡(luò)協(xié)議可以使用tcpdump.
            posted on 2011-05-08 15:18 大寶天天見 閱讀(3122) 評論(0)  編輯 收藏 引用 所屬分類: 2.C/C++/C#/Java
            久久精品国产精品青草| 一本色道久久88—综合亚洲精品| 久久精品国产亚洲一区二区三区| 久久99精品久久只有精品| 久久亚洲国产精品成人AV秋霞| 久久综合九色综合欧美就去吻| 国产精品熟女福利久久AV| 久久婷婷国产麻豆91天堂| 国产精品久久成人影院| 99久久婷婷免费国产综合精品| 久久偷看各类wc女厕嘘嘘| 国产婷婷成人久久Av免费高清| 国产精品亚洲综合久久| 一本色道久久HEZYO无码| 久久久久久亚洲精品成人| 久久91亚洲人成电影网站| 国产99久久久国产精品~~牛 | 久久精品亚洲福利| 国产精品久久久99| 亚洲а∨天堂久久精品9966| 一本色道久久综合狠狠躁| 天堂久久天堂AV色综合| 99久久国产亚洲高清观看2024 | 精品久久久久久国产免费了| 久久综合给合综合久久| 久久精品国产亚洲AV不卡| AV无码久久久久不卡蜜桃| 久久国产三级无码一区二区| 欧美黑人激情性久久| 国产成人久久激情91| 久久午夜综合久久| 久久水蜜桃亚洲av无码精品麻豆| 久久精品无码专区免费青青| 国产精品成人99久久久久 | 国内精品久久久久久久涩爱| 亚洲精品无码久久不卡| 久久精品人人槡人妻人人玩AV| 久久精品免费大片国产大片| 国内精品久久久久久99蜜桃| 国産精品久久久久久久| 久久九九精品99国产精品|