JNI崩溃日志:使用stacktrace输出确定源文件行

时间:2016-10-27 05:29:44

标签: android java-native-interface crash-reports debug-symbols

崩溃&当本机代码在用户的设备上崩溃时,谷歌播放开发者控制台的ANR部分提供了这种反馈:

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: '...'
Revision: '...'
ABI: 'arm'
pid: ...., tid: ...., name: ....  >>> com.package <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
<registers>
backtrace:
    #00 pc 003ba9be  /data/app/com.package/lib/arm/libx.so (sl_setVolumeSound(unsigned int, float)+105)
    #01 pc 003b9db7  /data/app/com.package/lib/arm/libx.so (Audio::setVolumeSound(unsigned int, float)+106)
到目前为止,这么好。但是如何确定字节码偏移量(?)中的源代码行,例如上面示例输出中的sl_setVolumeSound函数的+105?

我特别感谢一个完全可以在macosx命令行中运行但没有使用IDE的解决方案。

1 个答案:

答案 0 :(得分:0)

ndk-stack特别适用于此目的。请注意,要使其正常工作,您需要一个非剥离版本的本机库。更多详情here