Android如何读取JNI Core Dump FILES

前端之家收集整理的这篇文章主要介绍了Android如何读取JNI Core Dump FILES前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编码JNI应用程序. Logcat表示日志文件存在data / log / dumpstate_app_native.txt
还有东西在系统的墓碑.当我访问三星Infuse作为媒体设备时,我看不到任何这样的文件.其实我也看不到我的应用数据文件?他们在哪里,我看到其他应用程序包,但在数据期间没有太多.这是我在logcat中看到的:

dumpstate /data/log/dumpstate_app_native.txt
将/ data / tombstones / tombstone_01复制到DropBox(SYSTEM_TOMBSTONE)
将堆栈跟踪写入/data/anr/traces.txt

我在设备上搜索了* .txt的媒体设备,没有发现任何内容.

解决方法

您将无法读取墓碑文件,除非您使用的是模拟器或根固定的手机.
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
...

这是缩写堆栈跟踪.您需要使用NDK中的addr2line工具来确定这些十六进制地址引用的函数,文件和行号.在我的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的版本.

猜你在找的Android相关文章