arm-gdb的编译过程

1.首先下载 gdb源码下载:http://ftp.gnu.org/gnu/gdb/

2.当时我下载的是8.2版本的 gdb-8.2.tar.gz

3.解压 tar -zxvf

4.cd 进入解压后的文件 gdb-8.2

5.然后准备配置相关的参数

$./configure --target=arm-linux --enable-sim --prefix=/home/drive/gdbserver/8.2/AZ

注:--prefix = 这里是写编译后的可执行文件的安装路径,我这里的安装路径是/home/drive/gdbserver/8.2/AZ

6.输入make 命令进行编译

中间可能出现问题:

configure: error: no termcap library found

make[1]: *** [configure-gdb] Error 1

make[1]: Leaving directory `/home/lining/gdb-6.8'

make: *** [all] Error 2

解决方法:主要是缺少termcap库文件,在终端里执行sudo apt-get install libncurses5-dev安装

或者出现这个问题:

A compiler with support for C++11 language features is required

这个是因为缺少g++或者是版本低造成的

我这里是缺少这个文件,所以我先安装:sudo apt-get install g++

安装完后再make,正常

7.当make没有问题后执行,sudo make install 

8.成功后就可以在/home/drive/gdbserver/8.2/AZ,下看到有个bin文件夹,进入这个文件夹(cd bin)

需要运行gdb时候进入bin文件中,执行./arm-linux-gdb就可以。

 

9. arm-linux-gdbserver的编译安装
进入./gdb/gdbserver

命令如下:

$cd gdb/gdbserver./configure --target=arm-linux --host=arm-linux 
$make CC=arm-linux-gcc
(CC=arm-linux-gcc用于指定arm-linux编译器)
编译时出现PATH_MAX undeclared错误的解决方法:
在hostio.c文件中增加
#include <linux/limits.h>
原因是宏PATH_MAX在<limits.h>中没有定义,而是定义在<linux/limits.h>中

(红色表示我在编译时没有碰到这个错误,此错误是网友整理的,留在这里以供以后参考)
编译成功后在当前目录下会生成gdbserver文件,拷贝至开发板上(可放入开发板/usr/bin/目录下,这样在任何目录下均可执行gdbserver命令)

gdb+gdbserver nfs调试流程

通过NFS启动系统后,在开发板终端输入  # mount -t nfs -oonolock192.168.50.72:/opt/FriendlyARM/mini2440/root_qtopia  /mnt/  hello程序放在root_qtopia  下面.hello为要调试的程序(必须-g加入调试信息)。 

#gdbserver 192.168.50.72:2345 hello  192.168.50.72为宿主机IP,在目标系统的2345端口(你也可以设其他可用的值,当然必须跟主机的gdb一致)开启了一个调试进程,hello为要调试的程序(必须-g加入调试信息)。  出现提示:  Process /mnt/hello created: pid=80  Listening on port 2345  (另一个终端下)  #cd /opt/FriendlyARM/mini2440/root_qtopia   #arm-linux-gdb hello  最后一行显示:This GDB was configured as “--host=i686-pc-linux-gnu,--target=arm-linux”...,如果不一致说明arm-linux-gdb有问题  说明此gdb在X86的Host上运行,但是调试目标是ARM代码。  (gdb) target remote 192.168.50.168:2345  (192.168.50.168为开发板IP)  Remote debugging using 192.168.50.168:2345  [New thread 80]  [Switching to thread 80]  0x40002a90 in ??()  同时在minicom下提示:  Remote debugging from host 192.168.50.72(gdb)  注意:你的端口号必须与gdbserver开启的端口号一致,这样才能进行通信。建立链接后,就可以进行调试了。调试在Host端,跟gdb调试方法相同。注意的是要用“c”来执行命令,不能用“r”。因为程序已经在Target Board上面由gdbserver启动了。结果输出是在Target Board端,用超级终端查看。连接成功,这时候就可以输入各种GDB命令如list、run、next、step、break等进行程序调试了。 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值