valgrind的编译和使用
ubuntu 平臺(tái):
valgrind 3.8.1
一. 編譯
./configure --prefix=/home/frank/test/valgrind/PC/local
報(bào)錯(cuò):checking the GLIBC_VERSION version... unsupported version 2.19
解決辦法:修改configure,支持glibc 2.19.
接著make;make install 就安裝好了。
二. 使用
2.1 內(nèi)存釋放后 繼續(xù)使用已釋放的內(nèi)存的情況
2.2 malloc 內(nèi)存泄漏問題
第一個(gè)紅框Invalid write of size 4 提示越界;
第一個(gè)紅框中的HEAP SUMMARY:提示內(nèi)存泄漏,alloc了40 Bytes的block,但是free 為0,如果正常釋放是如下結(jié)果:
arm 平臺(tái)交叉編譯:
./configure --prefix=/home/frank/test/valgrind/local CC=arm-openwrt-linux-gcc CPP=arm-openwrt-linux-cpp CXX=arm-openwrt-linux-c++ --host=arm-openwrt-linux
make;make install
成功后將整個(gè)local目錄拷貝至目標(biāo)板,local包含bin,include,lib,share.
注意:
可能會(huì)出現(xiàn)“valgrind: failed to start tool ‘memcheck’ for platform ‘a(chǎn)rm-linux’: No such file or directory”的問題
解決辦法:
1.--prefix指定的目錄要與目標(biāo)板上的目錄一致,以我的環(huán)境為例,在目標(biāo)板上需要mkdir -p/home/frank/test/valgrind/local
如果還不行,就依次執(zhí)行下面的步驟。
2. chmod -R +x/home/frank/test/valgrind/local/bin
3.export VALGRIND_LIB=“/home/frank/test/valgrind/local/lib/valgrind”
chmod -R +x /home/frank/test/valgrind/local/lib/valgrind/
以上示例中的路徑都是我的環(huán)境下的,實(shí)際操作時(shí),請(qǐng)使用自己的路徑。
總結(jié)
以上是生活随笔為你收集整理的valgrind的编译和使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信公众号开发系列-发送客服消息
- 下一篇: 使用objdump objcopy查看与