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

时间:2018-08-20 15:34:51

标签: android c++ c memory-leaks

我正在探索几种方法,以找出最好的工具/方法来找出android应用中本机代码中的内存泄漏。作为本练习的一部分,我遇到了以下网址中提供的选项。

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中看不到任何指示内存泄漏的打印内容。

如果有人曾经使用过这种方法来找出本机内存泄漏,请告诉我是否丢失了某些东西。 logcat日志是否是查找泄漏消息的正确位置?如果没有,我应该如何查找泄漏信息?

1 个答案:

答案 0 :(得分:0)

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

尝试以下命令:

adb shell setprop libc.debug.malloc.options backtrace 

然后采取dumpheap。