android 移植valgrind
来源:互联网 发布:天谕女性捏脸数据 编辑:程序博客网 时间:2024/06/05 03:37
自己一直在linux下使用valgrind用于应用内存泄漏,网上也找到了宋宝华老师写的有关源码编译移植的文章。我发现在我android编译后out目录里面就有相关的valgrind文件。所以就懒得下载valgrind源码了。
./target/product/g18ref/symbols/system/bin/valgrind./target/product/g18ref/symbols/system/lib/valgrind./target/product/g18ref/symbols/system/lib/valgrind/vgpreload_tsan-arm-linux.so./target/product/g18ref/symbols/system/lib/valgrind/vgpreload_core-arm-linux.so./target/product/g18ref/symbols/system/lib/valgrind/memcheck-arm-linux./target/product/g18ref/symbols/system/lib/valgrind/vgpreload_drd-arm-linux.so./target/product/g18ref/symbols/system/lib/valgrind/massif-arm-linux./target/product/g18ref/symbols/system/lib/valgrind/helgrind-arm-linux./target/product/g18ref/symbols/system/lib/valgrind/vgpreload_helgrind-arm-linux.so./target/product/g18ref/symbols/system/lib/valgrind/cachegrind-arm-linux./target/product/g18ref/symbols/system/lib/valgrind/vgpreload_memcheck-arm-linux.so./target/product/g18ref/symbols/system/lib/valgrind/drd-arm-linux./target/product/g18ref/symbols/system/lib/valgrind/callgrind-arm-linux./target/product/g18ref/symbols/system/lib/valgrind/vgpreload_massif-arm-linux.so./target/product/g18ref/symbols/system/lib/valgrind/none-arm-linux./target/product/g18ref/symbols/system/lib/valgrind/tsan-arm-linux
第一行是编译出来的bin文件
我把它放在 android 盒子的 data 目录,
第一行之后的都是valgrind所用的库文件
这个库文件可以随便指定。之后用export VALGRIND_LIB= 指定你库文件路径
我开始移植为了小心就和宋宝华老师放的位置一样,
/data/local/valgrind/lib/valgrind
ls /data/local/valgrind/lib/valgrind/ cachegrind-arm-linuxcallgrind-arm-linuxdefault.suppdrd-arm-linuxhelgrind-arm-linuxmassif-arm-linuxmemcheck-arm-linuxnone-arm-linuxtsan-arm-linuxvgpreload_core-arm-linux.sovgpreload_drd-arm-linux.sovgpreload_helgrind-arm-linux.sovgpreload_massif-arm-linux.sovgpreload_memcheck-arm-linux.sovgpreload_tsan-arm-linux.so
开始运行的时候发现少default.supp文件。
把out/target/product/g18ref/obj/lib/default.supp文件移到valgrind就可以了。
在运行valgrind一定要指定库文件路径
export VALGRIND_LIB=/data/local/valgrind/lib/valgrind
#include <stdio.h>#include <stdlib.h>main(int argc, char **argv){ char *p = malloc(5); char *q = malloc(10); //free(p); //free(q); // return;}
这是我编写的测试文件一看就有问题。
然后拷贝到android的data目录下。
ls datalost+foundmediamiscpptvpreinstall_md5propertyresource-cachesshsystemuservalgrindxc
其中 pptv是上面的测试文件 valgrind就是./target/product/g18ref/symbols/system/bin/valgrind文件。千万别把上面测试程序命名 test。
在中断下运行命令
./valgrind --leak-check=full --track-origins=yes ./pptv ==6285== Memcheck, a memory error detector==6285== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.==6285== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info==6285== Command: ./pptv==6285== ==6285== ==6285== HEAP SUMMARY:==6285== in use at exit: 15 bytes in 2 blocks==6285== total heap usage: 2 allocs, 0 frees, 15 bytes allocated==6285== ==6285== 5 bytes in 1 blocks are definitely lost in loss record 1 of 2==6285== at 0x4897CCC: malloc (in /data/local/valgrind/lib/valgrind/vgpreload_memcheck-arm-linux.so)==6285== by 0x1083C7: ??? (in /data/pptv)==6285== ==6285== 10 bytes in 1 blocks are definitely lost in loss record 2 of 2==6285== at 0x4897CCC: malloc (in /data/local/valgrind/lib/valgrind/vgpreload_memcheck-arm-linux.so)==6285== by 0x1083CD: ??? (in /data/pptv)==6285== ==6285== LEAK SUMMARY:==6285== definitely lost: 15 bytes in 2 blocks==6285== indirectly lost: 0 bytes in 0 blocks==6285== possibly lost: 0 bytes in 0 blocks==6285== still reachable: 0 bytes in 0 blocks==6285== suppressed: 0 bytes in 0 blocks==6285== ==6285== For counts of detected and suppressed errors, rerun with: -v==6285== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
发现上面报的错很明显。很好用
0 0
- android 移植valgrind
- android平台移植valgrind
- valgrind交叉编译移植
- hisi3531 valgrind 交叉编译移植
- valgrind的arm平台移植
- Valgrind for android BuildSell
- valgrind android编译、安装
- 在嵌入式uClibc上移植valgrind
- valgrind for android 编译安装
- Valgrind
- valgrind
- valgrind
- Valgrind
- valgrind
- Valgrind
- Valgrind
- Valgrind
- valgrind
- 多线程之鸟和鱼的故事
- 百度编辑器UEditor常用设置函数大全
- GPIO_API
- 如何去掉UltraEdit提示“希望转换到DOS格式吗”?
- JS实现Trim() Trim(str)
- android 移植valgrind
- Sublime Text 使用心得
- android音乐播放器源码
- 在win7系统上用U盘安装Ubuntu15.04
- 如何使用Git上传项目代码到github
- iOS 定时器
- Docker自动部署tomcat
- 怎样做C语言课程设计?(三)
- 在WEB网页上点击企鹅图片,可以启用QQ交谈