日期:2014-05-16  浏览次数:20396 次

gdbserver移植

 

1、http://ftp.gnu.org/gnu/gdb/  下载gdb。gdb-7.4.1.tar.gz (最新版,已确认可以编译过)

2、编译gdb

$ tar   xzvf  gdb-7.4.1.tar.gz    

   $ cd  gdb-7.4.1

   $ ./configure  --target=arm-linux  --prefix=/tianpei/share/arm-gdb 

   $ make

   $ make install

安装成功后主要是会在/tianpei/share/arm-gdb/bin下生成三个工具分别是:

arm-linux-gdb arm-linux-gdbtui  arm-linux-run

 

   注意这时我们编译的是用于主机上的gdb程序,因此仍然用x86版本的gcc编译,而不是用arm-gcc。而接下来我们要编译的gdbserver程序则是运行在目标板上的,需要用arm-gcc来编译。用CC=<you_arm-linux-gcc_path>来指定arm-linux-gcc编译器。

3、编译gdbserver

   $cd/gdb/gdbserver/

   $./configure  --target=arm-linux  --host=arm-linux  --prefix=/tianpei/share/arm-gdbserver

 

注释掉/gdb/gdbserver/linux-arm-low.c里面的

/*

#ifdef HAVE_SYS_REG_H

#include <sys/reg.h>

#endif

*/  

   $make CC=/toolschain/4.4.3/bin/arm-linux-gcc 

   $make install  

   安装成功后会生成两个文件,分别是:

/tianpei/share/arm-gdbserver/share/man/man1/arm-linux-gdbserver.1

/tianpei/share/arm-gdbserver/bin/arm-linux-gdbserver

 

  得到gdb和gdbserver之后,将gdbserver下载到目标板就可以远程调试了。(我使用的交叉编译工具是arm-linux-gcc 4.4.3,确认可以编译通过。)

 

 

因为身边没有开发板,接下来测试的流程如下:

1、将/tianpei/share/arm-gdbserver/bin/arm-linux-gdbserver工具下载到开发板的/bin

2、编译实例

编译: $arm-linux-gcc -g hello.c -o hello

实例:
//hello.c
#include<stdio.h>
#include<string.h>
int main()
{
char *str=NULL;
strcpy(str,"hello");
printf("str is %s\n",str);
return 0;
}   

1、  配制gdbserver

设置主机IP地址为:192.168.1.10,开发板系统IP地址为:192.168.1.230(一般只需设置成同一个网段就行),
在开发板中:

#gdbserver 192.168.1.230:1234 hello
Process test created:pid=80   //使gdbserver在1234端口监听。

在主机中:

#arm-linux-gdb
(gdb) target remote 192.168.1.230:1234    //若链接成功,开发板的串口终端会显示如下:
Remote debugging from host 192.168.1.10
(gdb) symbol file hello                              //此处的hello是PC机上的所在路径的hello
(gdb) list
(gdb) brea