日期:2014-05-16 浏览次数:20396 次
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