22.Eclipse下Ndk开发(使用ndk自带工具addr2line定位错误)

D:\application\java\android-ndk-r10e\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64\bin>arm-linux-androideabi-addr2line -e C:\rzm\code\workspace-android\ndk_openSL\obj\local\armeabi\libOpenSLAudioPlayer.so 00001d4b
C:\rzm\code\workspace-android\ndk_openSL/jni/OpenSLAudioPlayer.cpp:230

进入ndk目录下
D:\application\java\android-ndk-r10e\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64\bin>

使用工具arm-linux-androideabi-addr2line执行命令

arm-linux-androideabi-addr2line -e C:\rzm\code\workspace-android\ndk_openSL\obj\local\armeabi\libOpenSLAudioPlayer.so 00001d4b

其中-e表示的是错误级别
C:\rzm\code\workspace-android\ndk_openSL\obj\local\armeabi\libOpenSLAudioPlayer.so表示的是发生错误的so文件

00001d4b表示的是logcat打印出来的地址

也就是说只要你能定位到发生错误的地址,那么就可以使用这个命令将这个地址转换成代码中的具体在第几行,

D:\application\java\android-ndk-r10e\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64\bin>arm-linux-androideabi-addr2line -e C:\rzm\code\workspace-android\ndk_openSL\obj\local\armeabi\libOpenSLAudioPlayer.so 00001d4b
C:\rzm\code\workspace-android\ndk_openSL/jni/OpenSLAudioPlayer.cpp:230

可以看到错误发生在\rzm\code\workspace-android\ndk_openSL/jni/OpenSLAudioPlayer.cpp文件的第230行

具体的平台根据实际开发选择,这里是以arm为例

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,135评论 25 709
  • 一、NDK产生的背景 Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于J...
    Ten_Minutes阅读 9,014评论 1 27
  • 概述 相信网上有很多类似的文章,大家看到的也比较多,但对于Eclipse上创建so,我觉得网上并没有一个全面的介绍...
    tjt852阅读 9,699评论 0 5
  • Android游戏开发实践(1)之NDK与JNI开发02 承接上篇Android游戏开发实践(1)之NDK与JNI...
    AlphaGL阅读 9,197评论 0 24
  • 徜徉书海2017/6/19星期一晴 今晚,我又准时来到教室,然后在教室的走道里徜徉。 由于教室很大,而人又不是很多...
    东风有力阅读 3,315评论 4 10

友情链接更多精彩内容