在ARM / ARM64上无效的NDK崩溃回溯

时间:2018-10-11 16:51:59

标签: android android-ndk google-fabric

我们有一个与CrashlyitcsNdk一起使用的Android应用程序,用于崩溃报告。

在许多崩溃报告中,回溯都有许多丢失的符号,并且显示不准确。这对于ARM和ARM64设备尤其不利。

相比之下,X86设备具有正确的回溯信息。

例如,比较两个不同设备上的同一崩溃程序的以下两个报告:

X86 on Android 8.0
Crashed: Thread
0  libavcodec.so                  0xc9420651 ff_cbs_read_unsigned (get_bits.h:274)
1  libavcodec.so                  0xc944045a cbs_misc_read_a53_user_data (cbs_misc_syntax_template.c:84)
2  libavcodec.so                  0xc979bcb3 mpeg2_metadata_filter (mpeg2_metadata_bsf.c:226)
3  libavcodec.so                  0xc941e926 av_bsf_receive_packet (bsf.c:203)
4  libavcodec.so                  0xc9472bbf bsfs_poll (decode.c:299)
5  libavcodec.so                  0xc96c697d mediacodec_receive_frame (mediacodecdec.c:424)
6  libavcodec.so                  0xc9473340 decode_receive_frame_internal (decode.c:644)
7  libavcodec.so                  0xc9472f68 avcodec_send_packet (decode.c:717)

vs

ARM64 on Android 8.0
0  libavcodec.so                  0x2f2bcbdd7c ff_cbs_read_unsigned (get_bits.h:274)
1  (Missing)                      0x47413930 (Missing)
2  (Missing)                      0x47413930 (Missing)
3  libavcodec.so                  0x2f2bcd8650 cbs_misc_read_a53_user_data (cbs_misc_syntax_template.c:84)
4  libavcodec.so                  0x2f2bf3f338 mpeg2_metadata_filter (mpeg2_metadata_bsf.c:226)
5  libavcodec.so                  0x2f2bed86e4 ff_mediacodec_dec_receive (mediacodecdec_common.c:861)
6  libavcodec.so                  0x2f2bd00fdc ff_decode_get_packet (decode.c:299)
7  libavcodec.so                  0x2f2c028906 (Missing)
8  libavcodec.so                  0x2f2bed73cc mediacodec_receive_frame (mediacodecdec.c:424)
9  libc.so                        0x2f0df1b698 (Missing)
10 libavcodec.so                  0x2f2bd01690 decode_receive_frame_internal (decode.c:644)
11 libavutil.so                   0x2f2baefce8 av_mallocz (mem.c:87)
12 libavcodec.so                  0x2f2bd01300 avcodec_send_packet (decode.c:717)

ARM / ARM64上的展开器似乎无法正常工作。

此外,根据https://docs.fabric.io/android/crashlytics/ndk.html上的文档,“正在加载的展开库将在应用程序启动时写入logcat。”但是,我看不到有关正在使用的展开器的应用程序启动登录。

0 个答案:

没有答案