用ndk-stack快速定位jni问题

46 篇文章 1 订阅
本文详细解析了Android应用中使用FFmpeg进行H264解码时的崩溃日志,通过ndk-stack定位到libplayer.so中的错误,并指导如何查找源码。涉及关键函数如ff_h264_decode_mb_cabac和h264_decode_frame。
摘要由CSDN通过智能技术生成

第一步把相关报错日志导入到本地文件

Android\sdk\platform-tools>adb logcat > D:\log.txt

 

 

 

第二步把上 面的错误日志文件用ndk-stack进行解读准确找到出错的c\c++文件和行数

Android\sdk\ndk-bundle\ndk-stack -sym app\build\intermediates\cmake\debug\obj\armeabi-v7a -dump D:\log.txt

 

原文如下所示:


********** Crash dump: **********
Build fingerprint: 'OPPO/A77t/A77:7.1.1/NMF26F/1569163872:user/release-keys'
#00 0x003ad70c /data/app/com.example.myffmpeg-2/lib/arm/libplayer.so (ff_h264_decode_mb_cabac+2027)
                                                                      ff_h264_decode_mb_cabac
                                                                      /mnt/hgfs/share-2/ffmpeg-4.0.2\libavcodec\h264_cabac.c:1958:0
#01 0x003a331f /data/app/com.example.myffmpeg-2/lib/arm/libplayer.so
get_cabac_terminate
/mnt/hgfs/share-2/ffmpeg-4.0.2\libavcodec\cabac_functions.h:180:0
decode_slice
/mnt/hgfs/share-2/ffmpeg-4.0.2\libavcodec\h264_slice.c:2594:0
#02 0x003a4291 /data/app/com.example.myffmpeg-2/lib/arm/libplayer.so (ff_h264_execute_decode_slices+164)
                                                                      ff_h264_execute_decode_slices
                                                                      /mnt/hgfs/share-2/ffmpeg-4.0.2\libavcodec\h264_slice.c:2769:0
#03 0x00395931 /data/app/com.example.myffmpeg-2/lib/arm/libplayer.so
decode_nal_units
/mnt/hgfs/share-2/ffmpeg-4.0.2\libavcodec\h264dec.c:707:0
h264_decode_frame
/mnt/hgfs/share-2/ffmpeg-4.0.2\libavcodec\h264dec.c:993:0
#04 0x0033f643 /data/app/com.example.myffmpeg-2/lib/arm/libplayer.so
decode_simple_internal
/mnt/hgfs/share-2/ffmpeg-4.0.2\libavcodec\decode.c:409:0
decode_simple_receive_frame
/mnt/hgfs/share-2/ffmpeg-4.0.2\libavcodec\decode.c:594:0
decode_receive_frame_internal
/mnt/hgfs/share-2/ffmpeg-4.0.2\libavcodec\decode.c:612:0
#05 0x00340f6f /data/app/com.example.myffmpeg-2/lib/arm/libplayer.so (avcodec_send_packet+126)
                                                                      avcodec_receive_frame
                                                                      /mnt/hgfs/share-2/ffmpeg-4.0.2\libavcodec\decode.c:716:0
#06 0x002e10ef /data/app/com.example.myffmpeg-2/lib/arm/libplayer.so (_ZN12VideoChannel12video_decodeEv+86)
                                                                      VideoChannel::video_decode()
                                                                      G:\e\work\test\MyFfmpegVideo\app\.cxx\cmake\debug\armeabi-v7a\../../../../src/main/cpp\VideoChannel.cpp:105:17
#07 0x002e108f /data/app/com.example.myffmpeg-2/lib/arm/libplayer.so (_Z17task_video_decodePv+14)
                                                                      VideoChannel::video_decode()
                                                                      G:\e\work\test\MyFfmpegVideo\app\.cxx\cmake\debug\armeabi-v7a\../../../../src/main/cpp\VideoChannel.cpp:75:12
#08 0x000473d3 /system/lib/libc.so (_ZL15__pthread_startPv+22)
#09 0x00019d6d /system/lib/libc.so (__start_thread+6)
Crash dump is completed

参考:

https://www.jianshu.com/p/e9dbc8ea733b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

https://blog.csdn.net/momo0853/article/details/50889383

https://blog.csdn.net/u012815193/article/details/81489204

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值