Debug Android native code

Introduction

     How to debug native code running on emulator/devices?    There are  some tools both in AOSP and system.image that can be used to achieve the aim.

  • device side:   /system/bin/gdbserver
  • AOSP side :   NDK,   prebuild/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gdb   

    The baisc idea is using adb to route gdb command between  x86 and android device, below is a rude demonstration:

 

How to using GDB debugging android

step1: use adb shell ps to list process list,  and select which process want to debug, for example android.com.media whose pid=668

# adb shell ps


step2:  run gdbserver with a given tcp port,  for example port 10000

# adb shell gdbserver :10000 --attach 668

Attached; pid=quit

Listening on port 10000


step3: run adb to forward port 10000 to target devices

# adb forward tcp:5039 tcp:10000     //replace 5039 with the real listen port of adb server


step4: run gdb in NDK

# prebuild/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gdb


step5:  connect gdb to gdbserver,   run gdb command 

(gdb) target remote localhost:5039

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值