我正在探索几种选择,以找出最佳工具/方法来找出 Android 应用程序 native 代码中的内存泄漏。作为本练习的一部分,我发现了以下网址中存在的选项。
我编写了一个示例应用程序,它调用在共享库中编写的 native 函数。我故意将内存泄漏放在这个 native 函数中。在运行该应用程序之前,我做了
- adb shell setprop libc.debug.malloc.program
- adb shell setprop libc.debug.malloc 10
然后我启动了应用程序。但是我在 logcat 中看不到任何指示内存泄漏的打印。
如果有人曾使用这种方法找出 native 内存泄漏,请告诉我是否遗漏了什么。 logcat 日志是否位于查找泄漏消息的正确位置?如果不是,我应该如何找到泄漏信息?
最佳答案
您应该根据您的应用程序的版本设置回溯。
试试这个命令:
adb shell setprop libc.debug.malloc.options backtrace
然后取垃圾堆。
关于android - 如何使用 Malloc Debug 检查 native 内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51934123/