移植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调试网络断开的情况。
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调试网络断开的情况。
相关文章推荐
- arm平台gdb移植实践笔记
- ARM平台移植GDB
- 移植mysql到arm平台
- 移植MySQL到嵌入式ARM平台
- qwt的x86平台和arm平台的移植
- ARM平台上蓝牙协议栈Bluez的移植使用和配置 收藏
- ARM平台上蓝牙协议栈Bluez的移植使用和配置
- arm 平台上蓝牙协议栈的移植与使用
- wifi驱动的ARM平台移植问题<error: unknown field 'testmode_cmd' specified in initializer>
- 基于qt的嵌入式平台输入法:SYSZUXpinyin移植到arm后,UDP接收端中文乱码 本地中文乱码 解决
- 交叉编译GDB(ARM平台)
- 建立ARM平台上的交叉调试器gdb和gdbserver
- 移植glib库,procps到arm平台
- ARM平台上蓝牙协议栈Bluez的移植使用和配置 .
- 移植QT到arm平台
- qt4.8.6 移植到 freescale (arm 平台)
- GDB arm-linux交叉编译移植和使用方法(特别是对于正在运行的程序或者段错误的程序进行分析)
- ARM平台移植 openssl-1.1.0
- 移植Python2.7到ARM-LINUX嵌入式平台
- ARM平台上蓝牙协议栈Bluez的移植使用和配置