调试原理:调试时在TARGET端(手机或模拟器或开发板等目标平台)运行gdbserver,并将要调试的进程attach到gdbserver上;在HOST(例如PC机)端运行gdb,通过adb在TARGET和HOST之间做端口映射进行通讯。
adb+gdb/gdbserver配合来调试远程native代码
Part1:主要工具:adb gdb/gdbserver
adb(android debug bridge)是一个多功能的安卓命令行工具,用户可以用来连接模拟器和安卓设备;它是client-server架构,主要包括:client(PC端),server(PC端),daemon进程(模拟器或安卓设备端)三部分。
adb连接逻辑和基本概念,打开
gdb(GNU debugger)是常用于GNU OS的调试工具。gdb更多介绍请移步wiki
Part2:准备工作
1,编译带有符号表信息的目标文件(例如动态库)
要使用gdb来调试,首先要编译和加载带有符号表信息的目标文件;需要加上几个编译选项:-O0 -ggdb3 -fno-inline -g,尽量多的带有信息供调试
特别说明:
a,如果编译生成的文件跟项目中加载的文件不同名,一定要改名或拷贝成后者的文件名
b,andr