Android Как читать файлы JNI Core Dump - PullRequest
11 голосов
/ 01 декабря 2011

Я кодирую приложение JNI. Logcat указывает, что существуют файлы журнала data / log / dumpstate_app_native.txt Также вещи в системе надгробий. Когда я получаю доступ к Samsung Infuse как к мультимедийному устройству, я не вижу таких файлов. На самом деле я тоже не вижу файлы данных своего приложения? Где они, я вижу другие пакеты приложений, но не сильно за период данных. Вот что я вижу в logcat:

dumpstate /data/log/dumpstate_app_native.txt копирование / данных / надгробий / надгробий_01 в DropBox (SYSTEM_TOMBSTONE) Записал следы стека в '/data/anr/traces.txt

Я выполнил поиск на устройстве как мультимедийное устройство для * .txt и ничего не нашел.

Ответы [ 2 ]

11 голосов
/ 19 января 2012

Вы не сможете читать надгробные файлы, если не используете эмулятор или рутованный телефон.Logcat распечатывает надгробный камень на уровне отладки (это большой дамп ядра перед сообщением «копирование надгробного камня»).Должен быть раздел, который выглядит примерно так:

01-18 16:28:04.334 16759 16759 I DEBUG   :  scr 80000012
01-18 16:28:04.334 16759 16759 I DEBUG   : 
01-18 16:28:04.384 16759 16759 I DEBUG   :          #00  pc 00007f84  /data/data/com.myapp/lib/myjnilib.so
01-18 16:28:04.384 16759 16759 I DEBUG   :          #01  pc 00008f80  /data/data/com.myapp/lib/myjnilib.so
01-18 16:28:04.394 16759 16759 I DEBUG   :          #02  pc 00002c6a  /data/data/com.myapp/lib/myjnilib.so
01-18 16:28:04.394 16759 16759 I DEBUG   :          #03  pc 00002ea8  /data/data/com.myapp/lib/myjnilib.so
01-18 16:28:04.394 16759 16759 I DEBUG   :          #04  pc 00003178  /data/data/com.myapp/lib/myjnilib.so
01-18 16:28:04.394 16759 16759 I DEBUG   :          #05  pc 00011e74  /system/lib/libdvm.so
...

Это сокращенная трассировка стека.Вам нужно использовать инструмент addr2line в NDK, чтобы определить функцию, файл и номер строки, к которой относятся эти шестнадцатеричные адреса.В моей системе OSX команда для получения первой строки трассировки стека выглядит следующим образом:

/opt/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/arm-linux-androideabi-addr2line -f -e myJNIproject/obj/local/armeabi/myjnilib.so 0x00007f84

, где myJNIproject / obj / local / armeabi / myjnilib.so - версия myjnilib.so , который содержит информацию о номере строки.

0 голосов
/ 15 августа 2013

посмотрите по этой ссылке http://bytesthink.com/blog/?p=133

просто убедитесь, что у вас есть правильная синхронизация символов с собранным надгробием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...