您的位置:首页 > 运维架构 > Linux

移植gdb6.6到arm平台

2014-09-15 19:54 465 查看
gdbserver太麻烦了,不好用还是直接在板子上编个gdb用吧

1. 编译termcap

交叉编译gdb6.6需要库termcap,这个在交叉工具链里面没有,需要先移植一个,否则会出现: configure: error: no termcap library found
1.1 下载
termcap-1.3.1.tar.gz, 解压 (可以到我的网盘下载:http://pan.baidu.com/s/1mgHqUlq)

1.2 ./configure --target=arm-linux --prefix=/opt/termcap,生成Makefile之后,修改一下工具链:

    CC = /opt/forlinux/4.3.2/bin/arm-none-linux-gnueabi-gcc 

     AR = /opt/forlinux/4.3.2/bin/arm-none-linux-gnueabi-ar

     RANLIB = /opt/forlinux/4.3.2/bin/arm-none-linux-gnueabi-ranlib

1.3 make && make install

1.4 复制编译好的termcap到交叉工具链的位置上去

不知道 交叉工具链在config时去搜索哪个路径怎么办?

“交叉编译安装完成后必须要将这个库放在交叉编译工具gcc(我的是mipsel-linux-gcc)的默认搜索库目录下。到你的交叉编译工具目录下,怎样查看默认搜索库的目录在哪里呢,执行下面的命令:

XXXXXXX-linux-gcc --print-file-name libc.a

就会显示出交叉编译工具所使用的库的默认搜索目录了。”

root@ubuntu:~/gdb/termcap-1.3.1#/opt/forlinux/4.3.2/bin/arm-none-linux-gnueabi-gcc
--print-file-name libc.a
/opt/forlinux/4.3.2/bin/../arm-none-linux-gnueabi/libc/usr/lib/libc.a

root@ubuntu:~/xeyez/gdb/termcap-1.3.1# cp  /opt/termcap/libtermcap.a  /opt/forlinux/4.3.2/bin/../arm-none-linux-gnueabi/libc/usr/lib/

2. 交叉编译gdb-6.6(可以到我的网盘下载:
http://pan.baidu.com/s/1hq3lQS0)

CC=/opt/forlinux/4.3.2/bin/arm-none-linux-gnueabi-gcc AR=/opt/forlinux/4.3.2/bin/arm-none-linux-gnueabi-ar RANLIB=/opt/forlinux/4.3.2/bin/arm-none-linux-gnueabi-ranlib LD=/opt/forlinux/4.3.2/bin/arm-none-linux-gnueabi-ld ./configure
--build=i686-linux --host=arm-linux --prefix=/opt/arm-gdb

make && make install

3. strip一下,减小gdb体积

root@ubuntu:/opt/arm-gdb/bin# ll gdb

-rwxr-xr-x 1 root root 10703951 2012-08-20 10:30 gdb*

root@ubuntu:/opt/arm-gdb/bin# /opt/forlinux/4.3.2/bin/arm-none-linux-gnueabi-strip ./gdb

root@ubuntu:/opt/arm-gdb/bin# ll -h gdb

-rwxr-xr-x 1 root root 2.4M 2012-08-20 10:47 gdb*

strip之前gdb大约有11M,strip之后是2.4M,拷到开发板的/bin目录下就可以直接调试程序了。

[参考文章]http://www.linuxidc.com/Linux/2012-08/68272.htm

(原文链接:http://blog.chinaunix.net/uid-26009923-id-3319177.html

补充:

gdbserver有个问题,当嵌入式设备的网络断开时,程序会停止,网络好后继续运行,所以不能用gdbserver调试网络断开的情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息