在windows进行Android的gdb调试,调试native程序,记录一下。好处可以看trace之类的,了解程序流程,打断点之类。
一.下载NDK
http://wear.techbrood.com/tools/sdk/ndk/
Ndk是google提供的调试Native代码的工具
注意要选择对应目标板的架构是32位还是64位的.
二.gdbserver推入到手机
我们需要把gdbserver推入到手机里面的system/bin目录,作为手机跟电脑通信的服务器端,并且把它的权限改为777,使其可以执行
修改后权限如下图:
三.端口转发
然后要进行adb的端口转发
意思就是电脑的7890的端口的信息会传输到手机的7890端口处
四.启动gdbserver,建立通信通道
1.假设我们要调试开机动画bootanimation,就执行
./gdbserver :7890 /system/bin/bootanimation
2.windows下的客户端与gdbserver 建立通信,如下图
3.导入symbol文件,symbol文件在下面路径,
使用file命令导入
4.attach上手机上的进程,电脑端和手机shell端都会有输出
5.使用list显示源文件
如果提示No such file or directory,则需要新建相应的目录,把源文件放进去
6.设置断点
7.continue命令让程序跑到断点
8.info locals查看变量值,如果看不到,变量中出现<optimized out>,可能程序作了优化,需要在Android.mk添加LOCAL_CFLAGS += -g -O0
9.通过print修改变量值,可以看到status修改为了1
10.如果我们需要导入大量的symbol文件,我们可以指定路径,通过命令set solib-search-path,如下图,看到路径下的symbol都导入了。