首页 > 解决方案 > libc++.so 是否单独使用 libc.so 或 libc++.so?

问题描述

在 android /system/lib 中,我看到 libc++ 和 libc 都存在。我知道 C++ 也包括 C。所以,如果我调用 printf、scanf、malloc 等函数......从哪个库中执行这些函数?来自 libc.so 还是 libc++.so?

最近我不得不调查一个内存泄漏问题,所以我使用 libc.debug.malloc 1 方法。

我做到了,

  1. 将 libc_malloc_debug_leak.so 推送到 /system/lib
  2. 和壳
  3. setprop libc.debug.malloc 1
  4. 停止
  5. 开始
  6. 运行我通过 JNI 调用 c++ 代码的 android 应用程序。我故意泄露了 malloc 分配的内存。

我仍然没有在日志中获得泄漏信息。

如果该方法仅适用于 libc 并且我的应用程序仅使用 libc++,则未在日志中显示泄漏信息的方法是正确的。

请帮助我了解具有本机 cpp 代码、libc++ 或 libc 的 android 应用程序使用哪个库?而且libc++对libc有任何依赖吗?

标签: androidc++c

解决方案


推荐阅读