gdbclient调试Android源码

  由于工作需要,最近重新开始接触C/C++开发和调试,自然离不开gdb的使用,很久之前使用过的一些gdb命令都忘的差不多了,重新温习了相关操作,顺便写篇文章记录一下。
  gdb是C/C++常用的开发调试工具,但是调试时需要配置symbol路径等参数,对于C/C++调试经验较少的人来说上手还是略麻烦,好在Google在Android6.0和7.0相继加入了gdbclientgdbclient.py,封装了gdb的一些命令,可以更方便的进行调试。
  PS: Google在Android 8.1上开始正式转入gdbclient.pygdbclient已经不再建议使用。

  1. 下载编译source code
  2. 保证手机是root且remount过的,否则没法push编译的lib/bin文件到system目录,symbol对不上的话debug也没法进行
  3. 编译OK后把需要debug的lib/bin文件push到对应目录,然后reboot并root手机
  4. adb forward tcp:5039 tcp:50391
  5. adb shell ps -A | grep "processname"找到需要调试的进程id
  6. adb shell进入手机命令行,gdbserver/gdbserver64 :5039 --attach "processpid"2
  7. 打开一个新的终端,进入源码根目录,执行. build/envsetup.sh配置好环境变量
  8. 在新终端中执行gdbclient.py就可以连上gdb进行调试了
    待更新:gdb中常用命令

  1. 执行gdbserver和gdbclient.py时要配置和adb forward一致的端口号,gdbclient.py中默认5039 ↩︎

  2. 用gdbserver和gdbserver64取决于对应的进程是32位还是64位的,可以通过cat /proc/processpid/maps | grep system/lib看link的是lib还是lib64的so确定 ↩︎

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值