如何使用 Malloc 调试来检查本机内存泄漏?
How to use Malloc Debug for checking native memory leaks?
我正在探索几个选项,以找出找出Android应用程序中本机代码中内存泄漏的最佳工具/方法。作为本练习的一部分,我遇到了以下 url 中存在的选项。
https://android.googlesource.com/platform/bionic/+/master/libc/malloc_debug/README_marshmallow_and_earlier.md
我编写了一个示例应用程序,它调用在共享库中编写的本机函数。我故意将内存泄漏放在这个本机函数中。在运行该应用程序之前,我做了
- adb shell setprop libc.debug.malloc.program
- adb shell setprop libc.debug.malloc 10
然后我启动了应用程序。但是我在日志中看不到任何指示内存泄漏的打印。
如果有人曾经使用过这种方法来找出本机内存泄漏,您能否告诉我我是否遗漏了一些东西。logcat 日志是否适合查找泄漏消息?如果没有,我应该如何找到泄漏信息?
您应该根据应用程序具有的版本设置回溯。
试试这个命令:
adb shell setprop libc.debug.malloc.options backtrace
然后拿垃圾堆。
相关文章:
- 从C++本机插件更新Vector3数组
- GCC本机矩阵运算库
- 如何使用 Malloc 调试来检查本机内存泄漏?
- 需要知道如何从本机 HAL 将地图存储在 android 持久内存中
- 本机 dll 中的动态内存分配
- 在本机 Android 应用中处理内存不足
- 低内存会导致本机代码中的SEG故障
- 如果您以Java JNI分配的本机代码中的内存泄漏,会发生什么
- NodeJS本机C ++ npm模块内存错误,开罗图像处理
- JNA 本机函数调用和具有双**指针/数组内存分配的结构
- 如何使用本机代码以编程方式查找Java本地变量的内存地址
- 从 .NET 程序集透明地访问本机内存
- 用于混合模式项目的内存泄漏检测:托管、非托管和本机
- 在本机进程的.net PE内存负载中
- c++ CLI中本机数组到托管数组的内存转换
- 本机C++dll/C#内存问题
- 使用NDK从本机内存恢复图像会返回无显示的黑色图像
- CLR 中本机堆的内存管理
- 将巨大的字符串从本机传递到 java - 内存不足错误
- 如何在Java端释放本机方法分配的内存