由于工作需要,最近重新开始接触C/C++开发和调试,自然离不开gdb的使用,很久之前使用过的一些gdb命令都忘的差不多了,重新温习了相关操作,顺便写篇文章记录一下。
gdb是C/C++常用的开发调试工具,但是调试时需要配置symbol路径等参数,对于C/C++调试经验较少的人来说上手还是略麻烦,好在Google在Android6.0和7.0相继加入了gdbclient
和gdbclient.py
,封装了gdb的一些命令,可以更方便的进行调试。
PS: Google在Android 8.1上开始正式转入gdbclient.py
,gdbclient
已经不再建议使用。
- 下载编译source code
- 保证手机是root且remount过的,否则没法push编译的lib/bin文件到system目录,symbol对不上的话debug也没法进行
- 编译OK后把需要debug的lib/bin文件push到对应目录,然后reboot并root手机
adb forward tcp:5039 tcp:5039
1adb shell ps -A | grep "processname"
找到需要调试的进程id- adb shell进入手机命令行,
gdbserver/gdbserver64 :5039 --attach "processpid"
2 - 打开一个新的终端,进入源码根目录,执行
. build/envsetup.sh
配置好环境变量 - 在新终端中执行
gdbclient.py
就可以连上gdb进行调试了
待更新:gdb中常用命令