mips交叉环境下gdb的建立与使用
条件:主机 192.168.1.102 开发板:192.168.1.103 nfs目录:/opt/work/nfs1.编译gdb6.8下载解压,这不用说了吧:)#cd gdb-6.8配置#./configure --target=mipsel-linux--prefix=/usr/local/mipsel-gdb-6.8有文章介绍在后面加上 -v
·
条件:主机 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#
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#
更多推荐
已为社区贡献7条内容
所有评论(0)