在linux下做開發,我一直用的eclipse。期間也配置過vim的IDE,但需要在項目中推廣使用,感覺生產力還是稍遜一些。
eclipse的linux tools系列工具使用起來也比較方便,再結合一些常用外掛程式,如svn,能滿足大多數日常開發需求。
1.gcov
程式碼涵蓋範圍測試,可以直觀的看出每行代碼的執行情況。配置步驟如下:
建立可執行工程-->在工程名上右鍵-->屬性-->setting-->Tool Setting標籤-->Debugging
Debug Level: Maximum(-g3)
Other debugging flags: -ftest-coverage -fprofile-arcs
(gprof設定也在此標籤中:Generate gprof information (-pg)前打勾)
Tool Setting標籤-->GCC C Linker
Miscellanous
Linker flags: -ftest_coverage -fprofile-arcs
即在編譯和連結過程中分別加入參數: -ftest-coverage和-fprofile-arcs。在連結時不加 -ftest-coverage 參數也可以。
2.gprof
效能測試工具,通過採樣的原理,可以看出是哪些代碼在使用系統資源。此工具主要針對使用者空間的效能的測試,使用前可以用time工具對目標程式進行觀察,如果使用者空間時間相對很少,則此工具可能對程式的協助不是很大,可以使用其它工具,如oprofile、systemtap等。
這兩個工具,一般系統內建,不需要單獨安裝,使用方便。grpof和gcov一樣,都需要程式運行並正常退出,對可以產生對應的檔案。gprof組建檔案為:gmon.out,gcov組建檔案較多,每個cpp檔案一個,包括兩種格式。在eclipse中雙擊這些檔案,即可直觀的看到相關結果。對於長期啟動並執行程式來說,可以使用特殊訊號來使用程式正常退出,如eclipse中停止程式運行使用的是 SIGTERM 訊號,建立此訊號處理函數,並在其中調用exit()即可。如果不想運行程式,可以使用splint、cppcheck。其中cppcheck有eclipse外掛程式,splint
印象中見過有,但後來找不到了,而且僅對C語言。
3.valgrind
valgrind提供了一系列的工具,其中比較常用的是記憶體泄露偵查工具。eclipse提供了調用介面,valgrind需要單獨安裝。結果展示也比文本方式直觀,雙擊可以定位到程式碼。