当SIGABRT(信号6)或SIGSEGV(信号11)出现在logcat日志中时,通常是因为应用程序试图访问它没有访问权限的内存位置。
每次发生本机崩溃时,它都会生成一个名为tombstone的文件,该文件是为该进程编写的。 tombstone文件包含进程崩溃时的重要信息。
检查与崩溃对应的/data/tombstone /中的tombstone文件。
从tombstones日志中恢复调用栈,获取相关代码文件和行:
/development/scripts/stack --symbolsdir=out/target/product/<board>/symbols<tombstone_file>
addr2line工具也可以用来恢复PC地址到代码行
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: ‘XXXX/XXXX/XXXX:6.0.1/XXX29K/31:user/release-keys'
Revision: '0'
ABI: 'arm'
pid: 9676, tid: 9688, name: Binder_2 >>> com.poptext.xzz:yyservice_v1 <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Abort message: 'art/runtime/java_vm_ext.cc:410] JNI DETECTED ERROR IN
APPLICATION: jclass has wrong type:
android.app.ActivityThread$Applic