使用libc_mallocdebug_leak时android malloc崩溃



我试图在Android 6.0上调查我的本地内存使用情况,但我的应用程序在尝试分配一些内存时不断崩溃。步骤如下:

  1. 我从CM rom为我的手机(Nexus 5)找到了libc_malloc_debug _leak.so

  2. 设置libc.debug.malloc 1。

  3. 重新启动我的手机。

  4. 安装我的应用程序。

在像4.4这样的旧安卓设备上,这非常有效,但当我在Android 6.0上这样做时,我的应用程序不断崩溃。我不知道为什么会发生这种事,也不知道如何找到答案。有人能帮忙吗?

顺便说一句,我正在使用ndk-r9c,我知道最新的是r11,但升级到r11需要很多工作,我不确定这是否是原因,我会在寻找答案的同时尝试一下。转储的崩溃日志如下:

Stack frame #00 pc 001e7abe  /data/app/com.myapp-1/lib/arm/libmylib_ol.so: Routine __gabixx::__default_terminate() at libgcc2.c:?
Stack frame #01 pc 001e7acf  /data/app/com.myapp-1/lib/arm/libmylib_ol.so: Routine __gabixx::__terminate(void (*)()) at libgcc2.c:?
Stack frame #02 pc 001e7b2b  /data/app/com.myapp-1/lib/arm/libmylib_ol.so: Routine std::terminate() at libgcc2.c:?
Stack frame #03 pc 001e729b  /data/app/com.myapp-1/lib/arm/libmylib_ol.so: Routine __cxxabiv1::call_terminate(_Unwind_Control_Block*) at libgcc2.c:?
Stack frame #04 pc 001e73f7  /data/app/com.myapp-1/lib/arm/libmylib_ol.so: Routine __cxxabiv1::scanEHTable(__cxxabiv1::ScanResultInternal&, int, bool, _Unwind_Control_Block*, _Unwind_Context*) at libgcc2.c:?
Stack frame #05 pc 001e7921  /data/app/com.myapp-1/lib/arm/libmylib_ol.so: Routine __gxx_personality_v0 at libgcc2.c:?
Stack frame #06 pc 00008a03  /system/lib/libc_malloc_debug_leak.so (_Unwind_Backtrace+130)
Stack frame #07 pc 000060ef  /system/lib/libc_malloc_debug_leak.so
Stack frame #08 pc 00006b69  /system/lib/libc_malloc_debug_leak.so (leak_malloc+84)

你很幸运,它以前工作过。你不能从一个构建中获得一个非官方的系统库,然后期望它在另一个构建上工作。即使是同一设备的补丁版本,也没有强制要求该库以兼容的方式工作。

仅供参考,我们正在努力让应用程序开发人员普遍使用此功能(调试malloc),但它还没有准备好。

相关内容

  • 没有找到相关文章

最新更新