2016-04-15 9 views
1

Ich habe versucht, meine native Speichernutzung auf Android 6.0 zu untersuchen, aber meine App stürzt ab, wenn Sie versuchen, etwas Speicher zu malloc. Die Schritte sind wie folgt:android malloc Absturz bei der Verwendung von libc_malloc_debug_leak

  1. I dowlownded libc_malloc_debug_leak.so von CM-ROM für mein Handy (Nexus 5)

  2. Set libc.debug.malloc 1.

  3. mein Handy neu zu starten.

  4. installieren Sie meine App.

auf alten Android-Geräte wie 4.4, funktioniert diese perfekt, aber wenn ich dies tun auf Android 6.0, meine app Absturz halten. Ich habe keine Ahnung, warum das passiert ist und wie man die Antwort findet. Kann jemand helfen?

BTW, ich bin mit ndk-r9c, ich weiß, die neuesten r11 ist, aber es wird viele Werke, um r11 zu aktualisieren, ich bin nicht sicher, ob dies die Ursache ist, ich werde es versuchen, während die Suche nach jemand, um meine Frage zu beantworten. Das versenkte Crash-Log ist wie folgt:

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) 

Antwort

0

Sie hatten nur Glück, dass es vorher funktioniert hat. Sie können keine inoffizielle Systembibliothek von einem Build nehmen und erwarten, dass sie auf einem anderen Build funktioniert. Es gibt keine Erzwingung, dass die Bibliothek so funktioniert, dass sie sogar mit Patch-Releases desselben Geräts kompatibel ist.

FYI, wir arbeiten daran, diese Funktion (Debug-Malloc) allgemein für App-Entwickler verfügbar zu machen, aber sie ist noch nicht fertig.

+1

Vielen Dank für Ihre Antwort. Nachdem ich viele Methoden ausprobiert habe, rüste ich meine native Bibliothek auf ndk r11 auf, und es funktioniert. – TerryChao

Verwandte Themen