使用DDMS中的native heap检查Android native内存泄露
来源:互联网 发布:张鲁 三国杀淘宝 编辑:程序博客网 时间:2024/05/16 15:04
- 检查手机上目录system/lib(system/lib64)下存在libc_malloc_debug_leak.so、libc_malloc_debug_qemu.so(eng或者user-debug版本自带)
- setprop libc.debug.malloc 1。这里有四种prop可以设置,1是mem leak,5和10是内存越界,20是虚拟机。可悲的是5和10并没有被libc_malloc_debug库完美地支持,所以只有1好用
- adb shell stop, start (不要手动关机重启,否则上一步设置的属性值会丢失),getprop libc.debug.malloc查看结果
- 在ddms.cfg文件最后增加一行native=true并save。ddms.cfg位于.android目录下。(建议在官网上单独下载SDK工具包,使用里面的ddms)
- 打开ddms选择Native Heap页面,点击snapshot按钮。snapshot的过程有点慢。最后能看到每个so占用了多少内存以及百分比。过一段时间snapshot一次就能看到每个so的趋势了。
- 分析。snapshot显示了分配内存的地址(记做addressA),这个地址是RAM地址,不是so的相对地址。为了得到相对地址,需要ps一下,找到你的pid,然后cat /proc/pid/maps,找到so的起始地址(记做addressB)。然后拿addressA - addressB,得到相对地址,用addr2line定位到哪一处调用。或者使用objdump -dS libXXX.so > XXX.dump,把so反编译出来,分析XXX.dump,找到相对地址的调用位置(lib64下so:prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/bin/x86_64-linux-android-addr2line )
0 0
- 使用DDMS中的native heap检查Android native内存泄露
- Android开发:使用DDMS Heap进行内存泄露调试
- Android开发:使用DDMS Heap进行内存泄露调试
- Android开发:使用DDMS Heap进行内存泄露调试
- 使用DDMS Heap进行内存泄露调试
- 检查Android下Native Code的内存泄露
- android native 内存泄露检查(libc.debug.malloc )
- enable native heap in ddms
- DDMS调试native heap实战
- Android native heap memory leak 实战(二) --- DDMS
- 使用Valgrind找出Android中Native程序内存泄露问题
- android 内存泄露 /进程 内存检查 --DDMS工具
- Android Native进程内存泄露检测
- Android Native进程内存泄露检测
- android native 代码内存泄露 定位方案
- ddms如何检查是否有内存泄露
- android-【DDMS->heap】工具-内存检测工具(内存泄露的检测工具)
- android-【DDMS->heap】工具-内存检测工具(内存泄露的检测工具)
- H5项目常见问题汇总及解决方案
- 读书笔记-《深入理解Java虚拟机》-对象探秘
- cookie和session的区别
- Java笔试题解(1)
- Leetcode 10. Regular Expression Matching
- 使用DDMS中的native heap检查Android native内存泄露
- 关于JS创建对象的几个常见模式
- 扩展知识
- kaldi mono训练(学习查阅博客)
- Python 安全编程学习总结
- Codeforce 558C. Amr and Chemistry &51nod 1483 化学变换 By Assassin 暴力大法好
- URAL 1004 Sightseeing Trip 无向图最小环
- (一)标识符、注释
- Class类探索(一)