【发布时间】:2020-12-20 05:31:01
【问题描述】:
我正在将 32 位 NDK 项目迁移到 64 位。 我们在项目中调用了这么多库: 比如 - libssl.so、libcrypto.so、libc.so、liblog.so、libcrashlytics.so
在要通过 fopen 读取内核进程的项目中,但不知何故,我收到了 FATAL 信号错误,Android logcat 显示如下
A/libc:致命信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR),故障地址 tid 12462 (eradocs.android)、pid 12462 (eradocs.android) 中的 0xafef03c4
========================= 在堆栈跟踪中找到的崩溃转储下方
#00 0x00000000afef03c4 - 此内存地址与上述致命信号错误匹配。
#06 0x000000000013f350 /apex/com.android.runtime/lib64/libart.so (art_quick_generic_jni_trampoline+144) (BuildId: d700c52998d7d76cb39e2001d670e654)
#07 0x00000000001365b8 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: d700c52998d7d76cb39e2001d670e654)
#08 0x000000000014500c /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, 艺术::JValue*, char const*)+276) (BuildId: d700c52998d7d76cb39e2001d670e654)
#09 0x00000000002e2928 /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384) (BuildId:d700c52998d7d76cb39e2001d670e654)
#10 0x00000000002ddb88 /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall
(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+892) (BuildId: d700c52998d7d76cb39e2001d670e654) #11 0x00000000005a28ac /apex/com.android.runtime/lib64/libart.so (MterpInvokeStatic+372) (BuildId: d700c52998d7d76cb39e2001d670e654)
#12 0x0000000000130994 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_static+20) (BuildId: d700c52998d7d76cb39e2001d670e654)
#14 0x00000000002b3c3c /apex/com.android.runtime/lib64/libart.so
谁能帮我处理这个堆栈跟踪?有没有办法找到它的根本原因?
【问题讨论】:
标签: android android-ndk 32bit-64bit ndk-build