环境说明:
android-6.0,交叉编译链为arm-linux-androideabi-4.9
明人不说暗话,直接上步骤:
1. 下载valrind最新源码valgrind-3.13.0.tar.bz2
2. 解压
tar xvf valgrind-3.13.0.tar.bz2
3. 配置
./configure --host=arm-linux CC=arm-linux-androideabi-gcc CPP=arm-linux-androideabi-cpp CXX=arm-linux-gnueabihf-g++ --prefix=/phone/valgrind
4.编译
make & make install
5.拷贝valrind和依赖库到android
将/phone/valgrind/lib/valgrind 下的库push到/phone/lib/下
将/phone/valgrind/lib/valgrind 下的库push到/phone/bin/下
6. 设置依赖库路径
export VALGRIND_LIB='/phone/lib/'
7.调试
/phone/bin/valgrind --tool=memcheck --leak-check=full ./test
注意事项:
- 程序最好编译debug版本,即加上-g -O0,并且不要strip,否则不会打印对应函数
- valrind只有在程序运行完成退出后才会生成报,如果是守护进程需要手动将valrind或者memcheck进程杀掉后才会生成报告