您的位置:首页 > 移动开发 > Android开发

android系统本地码调试

2010-09-11 00:50 316 查看
一、编译GDB。

首先在http://ftp.gnu.org/gnu/gdb/下载GDB的源代码,解压到/usr/src/中。

cd /usr/src/gdb-7.2
./configure --target=arm-linux
make
make install

如果出现如下错误:

configure: error: no termcap library found
make[1]: *** [configure-gdb] 错误 1
make[1]:正在离开目录 `/usr/local/arm-gdb/gdb-7.1'
make: *** [all] 错误 2

则说明需要下载安装一个libncurses5-dev。

用apt-get install libncurses5-dev命令下载安装后再执行make就可以了。

二、 编译gdbserver. 也可以不编译, 在源代码prebuild/android-arm/gdbserver上直接可以获得。

三、将gdbserver拷贝到模拟器或是机器里面(假定在/dev目录下)。

adb push gdbserver /dev/gdbserver
adb shell chmod 777 /dev/gdbserver 赋予权限

四、使用TCP连接ADB。(针对设备调试。ADB版本不能低于1.0.25)

我的UBUNTU虚拟机IP是192.168.1.156(可用ifconfig命令查看),设备IP是192.168.1.174(可在wifi设置的已连接网络上点击查看)。

首先保证主机和设备在同一个局域网内,且能ping通,并记下IP地址。

adb root

adb tcpip 5554

adb connect 192.168.1.174:5554

五、运行gdbserver

adb shell /dev/gdbserver 192.168.1.156:10000 --attach




adb shell /dev/gdbserver 192.168.1.156:10000
进程名

六、运行gdb,进行调试(imx51_BBG是产品名)

arm-linux-gdb

(gdb)
set solib-search-path out/target/product/imx51_BBG/symbols/system/lib:out/target/product/imx51_BBG/symbols/system/bin


(gdb) target remote 192.168.1.102:10000

总算连上了,但具体怎么调是个更大的问题,特别是系统里的动态链接库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: