用gdb和gdbserver调试android native code

 其实网上有很多类似的文章,但是你会发现几乎都不可重现,要么是细节没讲清楚,要么是压根自己没有真正去试过。这里,我仅给出自己用gdb和gdbserver调试android native code的实际过程,希望对大家有用。

      注:以调试mediaserver进程为例.

      第一步:你需要下载android,以debug方式编译,并以生成的image起模拟器或者设备。

      第二步:你需要从“http://developer.download.nvidia.com/tegra/files/tegra-gdb-20100430.zip”下载一个gdb,覆盖到android源码中gdb对应的位置。

      第三步:adb shell到设备,并起gdbserver侦听目标进程:

adb shell

gdbserver :5039 /system/bin/mediaserver

      第四步: 建立pc机和设备的消息连接:

     adb forward tcp:5039 tcp:5039

      第五步: 使用gdb调试目标进程:

cd android_src

prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gdb out/debug/target/product/generic/symbols/system/bin/mediaserver

      第六步: 设置符号表:

set solib-absolute-prefix /your_android_src_path/out/debug/target/product/generic/symbols

set solib-search-path /your_android_src_path/out/debug/target/product/generic/symbols/system/lib

    第七步: 使gdb和gdb server建立连接:

    target remote :5039

      第八步: ok. 现在可以使用gdb的命令进行调试,譬如next/break/step/info thread等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值