mips交叉环境下gdb的建立与使用

条件:主机 192.168.1.102    开发板:192.168.1.103    nfs目录:/opt/work/nfs

1.编译gdb6.8
下载解压,这不用说了吧:)
#cd gdb-6.8
配置
#./configure --target=mipsel-linux --prefix=/usr/local/mipsel-gdb-6.8
有文章介绍在后面加上 -v 参数结果导致出错,提示:
make[2]: *** [info-recursive] Error 1 
make[1]: *** [all-bfd] Error 2 
真晕:(
接着编译
#make
提示缺少termcup库,把libncurses5-dev装上就OK了。
安装
#make install
安装完就可以在/usr/local下面看到mipsel-gdb-6.8这个目录了
接下来做一个链接,以后就可以直接用mipsel-linux-gdb命令了
#ln -s /usr/local/mipsel-gdb-6.8/bin/mipsel-linux-gdb /bin/mipsel-linux-gdb

PS:configure的参数--build --target --host
--build就是你正在使用的平台,一般可以不设。
--target就是你想处理的程序所运行的平台,如下面的例子hello,hello是一个运行在mips上的程序,所以就要把target设为mipsel-linux。再如你要一个可以编译mips程序的gcc,你也需要设置target。
--host就是你编译好的程序所运行的平台,记住要跟target区别开来。假设编译好的程序为A,要处理的程序为B,就是用A来处理B。就像下面所编译出来的gdbserver,它要运行在mips的平台上,所以要加上这个参数。而gdb是运行在本机,用来执行远程mips平台的程序,所以调序了target为mipsel-linux,而在这里host就默认为本机x86平台。
build、target、host这三个参数有i386-linux、mipsel-linux、arm-linux这几个值可以设置。

2.编译gdbserver
#cd /gdb/gdbserver
#./configure --target=mipsel-linux --host=mipsel-linux
#make
我的机子上已经存在mips的交叉编译链mipsel-linux-gcc了,如果没有可以加上CC=.../mipsel-linux-gcc的参数。但我这里加了会出错,有文章说注释掉#include <sys/reg.h>,但我这里照样出错。
编译好了这后把gdbserver挎到/opt/work/nfs下备用。

3.在开发板上mount上nfs
#mount -t nfs -o nolock 192.168.1.102:/opt/work/nfs /nfs
记住上面命令是在开发板的终端上敲的,win下的超级终端或者linux的minicom。

4.在开发板上运行gdbserver
在终端上切换到nfs目录下
#cd /nfs
#./gdbserver 192.168.1.102:2345 hello
192.168.1.102为主机IP,在开发板上系统的2345端口开了一个调试进程,hello为要调试的程序
 
5.在主机运行gdb
#cd /opt/work/nfs
#mipsel-linux-gdb hello
(gdb) target remote 192.168.1.103:2345
192.168.1.103为开发板的IP,如果接连接成功,就可以开始调试了。

Enjoy yourself! :)

参考文章:http://www.auyou.com/hymb/grmb/wdrjinfo.asp?c_uid=arm9longren&auto_id=126081#
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值