如何使用 Malloc 调试来检查本机内存泄漏?

How to use Malloc Debug for checking native memory leaks?

本文关键字:本机 内存 泄漏 检查 何使用 Malloc 调试      更新时间:2023-10-16

我正在探索几个选项,以找出找出Android应用程序中本机代码中内存泄漏的最佳工具/方法。作为本练习的一部分,我遇到了以下 url 中存在的选项。

https://android.googlesource.com/platform/bionic/+/master/libc/malloc_debug/README_marshmallow_and_earlier.md

我编写了一个示例应用程序,它调用在共享库中编写的本机函数。我故意将内存泄漏放在这个本机函数中。在运行该应用程序之前,我做了

  1. adb shell setprop libc.debug.malloc.program
  2. adb shell setprop libc.debug.malloc 10

然后我启动了应用程序。但是我在日志中看不到任何指示内存泄漏的打印。

如果有人曾经使用过这种方法来找出本机内存泄漏,您能否告诉我我是否遗漏了一些东西。logcat 日志是否适合查找泄漏消息?如果没有,我应该如何找到泄漏信息?

您应该根据应用程序具有的版本设置回溯。

试试这个命令:

adb shell setprop libc.debug.malloc.options backtrace 

然后拿垃圾堆。