android - 如何使用 Malloc Debug 检查 native 内存泄漏?

标签 android c++ c memory-leaks

我正在探索几种选择,以找出最佳工具/方法来找出 Android 应用程序 native 代码中的内存泄漏。作为本练习的一部分,我发现了以下网址中存在的选项。

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

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

  1. adb shell setprop libc.debug.malloc.program
  2. 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/

相关文章:

android - 设计问题 - 从 TabLayout 启动新 fragment

c++ - 如何配置Clion来编译gtkmm项目

c++ - 嵌套类的嵌套类的访问权限

c++ - 如何使用 C++ 使用 Lame 将 24 位 wav 转换为 mp3

c - (C) 堆分配器如何处理 4 字节的 block 头,同时只返回 8 的倍数的地址?

android - 使用 Viewpager : Where to put all my Code 从 TabHost 切换到 Fragments

javascript - 解析服务器和 MongoDB 基础知识

c - 这个快速排序程序有什么问题?

Android Camera2帧水平反转

objective-c - 我该如何处理大量的精确警告标志?