2016-04-15 8 views
1

私はAndroid 6.0でネイティブメモリの使用状況を調べようとしていましたが、メモリをmallocしようとするとクラッシュします。手順は次のとおりです。libc_malloc_debug_leakを使用するとアンドロイドのmallocがクラッシュする

  1. は、私は自分の携帯電話を再起動

    自分の携帯電話(ネクサス5)

  2. セットlibc.debug.malloc 1.

  3. のためのCM ROMからlibc_malloc_debug_leak.so dowlownded。

  4. 私のアプリをインストールします。 4.4ような古いAndroidデバイス上の

、これは完璧に動作しますが、私は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) 

答えて

0

あなたは以前はうまくいっていました。 1つのビルドから非公式のシステムライブラリを取って別のビルドで動作させることはできません。同じデバイスのパッチリリースでも互換性のある方法でライブラリが動作するという強制はありません。

FYIでは、この機能(デバッグmalloc)を一般にアプリ開発者が利用できるようにしていますが、まだ準備が整っていません。

+1

ご返信ありがとうございます。たくさんのメソッドを試した後、私は自分のネイティブライブラリをndk r11にアップグレードして動作しています。 – TerryChao

関連する問題