C++產品開發,上線集成時,都需要內存洩露、覆蓋率等檢測,這些在Windows下都有很好的工具,如
Visual Studio: 這個內置了很多的工具
Devpartner: VC6時BoundChecker非常棒,Devpartner集成了很多的功能集合 http://www.borland.com/products/devpartner/default.aspx
而在Linux環境下,選擇少了很多,下面把eclipse中的工具使用說明一下,好費勁。
環境
Ubuntu 10 64位
Eclipse Juno
具體步驟
1、Eclipse CDT【http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/keplerr】安裝好後,linux tools 【http://www.eclipse.org/linuxtools/index.php】 內置集成了很多的工具
不過啟動後一用,報錯
java.lang.NullPointerException at org.eclipse.linuxtools.internal.valgrind.core.ValgrindCommand.readIntoBuffer(ValgrindCommand.java:82)
google一下,這個問題還出現過,但沒有解答,不知道如何解決
2、既然如此,直接使用吧, 進入 http://valgrind.org/ 下載安裝
按照docs目錄下的文檔,測試一個程序後,出現,錯誤提示
valgrind:
valgrind: On Debian, Ubuntu: libc6-dbg
valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo
http://askubuntu.com/questions/148236/valgrind-does-debug-error 中給出了方法
執行sudo apt-get install libc6-dbg, 提示 E: 無法安裝的軟件包 錯誤
咋辦,找到如下的快捷解決方法
sudo apt-get update; sudo aptitude install libc6-dbg
ubuntu關於aptitude和apt-get http://blog.csdn.net/yili_xie/article/details/4803314
使用aptitude 解決包沖突的問題,又學了一招
3、使用:以上全部安裝好後,終於可以正常使用了
valgrind --leak-check=yes ./aa 檢查一個測試程序,終於正常了
此時在進入Eclipse中可以了,具體效果看下圖
此時可以直觀的看到洩露和提示
另外:Eclipse對於C++還提供了其他的一系列工具,輔助代碼的分析等,具體如下:覆蓋率等等,這些的使用後續僅需看看
相比Windows下的這些工具,配置和使用起來真是有些麻煩。