android native 程序崩溃的调试方法

android native 程序崩溃的调试方法

使用arm-eabi-addr2line工具跟踪Android native程序调用堆栈:

  • 编译带调试的so 库
  • 交叉工具链
  • 跟踪定位错误位置

编译可调试的so 库

  • 修改 Android.mk,添加:

    LOCAL_CFLAGS := -g

  • 修改application.mk,添加:

    APP_OPTIM := debug

  • 找出编译ndk的toolchain(cross-compile)路径

    我这里是./prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin

  • 编译生成的so库路径:

    anroid 源码下编译的路径为obj下面而不是lib下面的目录

定位错误位置

  • ndk 环境下为:

    ndk-bundle\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-
    androideabi-addr2line -C -f -e libxxx.so 0x12345678(address)

  • android 源码环境为:

    ./prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-addr2line
    -C -f -e
    ./out/target/product/[PROJECT]/symbols/system/lib/libxx_jni.so 0x12345678(address)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值