GDB的安装与在嵌入式平台的使用

开发环境:
Ubuntu:Ubuntu-16-64bit
交叉编译工具:4.5.1
GDB版本:GDB-7.12
目标平台:全志A33

一、下载GDB,安装

目前最新的GDB版本为12,因为我们目标平台是32位早期的,因此选择了7.12版本,下载地址为:https://ftp.gnu.org/gnu/gdb/

1、解压、配置、安装

将下载的 gdb-7.12.tar.gz,放到Ubuntu相应的目录~/hudahua/tools$
解压

tar xzf gdb-7.12.tar.gz

解压后,进入gdb-7.12目录,配置GDB
~/hudahua/tools/gdb-7.12$
./configure配置选项:
–target 编译目标平台为ARM linux
–prefix路径:当前路径下___install目录

 ./configure --target=arm-linux --prefix=$pwd/__install

gdb-7.12$
配置完成,修改gdb/remote.c文件,然后编译

 vi gdb/remote.c
//注释掉两行
/*if (buf_len > 2 * rsa->sizeof_g_packet)
    error (_("Remote 'g' packet reply is too long: %s"), rs->buf);
*/

//add
 if (buf_len > 2 * rsa->sizeof_g_packet) {
      rsa->sizeof_g_packet = buf_len ;
      for (i = 0; i < gdbarch_num_regs (gdbarch); i++)
      {
         if (rsa->regs[i].pnum == -1)
         continue;

         if (rsa->regs[i].offset >= rsa->sizeof_g_packet)
         rsa->regs[i].in_g_packet = 0;
         else
         rsa->regs[i].in_g_packet = 1;
      }
   }
//add finish

编译

make

安装

sudo make install

在这里插入图片描述
在这里插入图片描述

2、编译安装过程中需要安装的库文件

在这里插入图片描述

sudo apt-get install texinfo

二、编译安装 GDB server

1、配置

进入gdb/gdbserver/目录,该目录为gdbserver的目录,同样,配置时需要指定为arm linux

cd gdb/gdbserver/
 ./configure --target=arm-linux  --host=arm-linux 

2、编译

make

编译时,缺少库

安装lzop库

sudo apt-get install lzop

在这里插入图片描述
在这里插入图片描述
生成GDB server

三、制作测试程序,测试gdb

:~/hudahua/test$

1、编写一个demo

vi test.c
#include <stdio.h>

int main(void)
{
        int i;
        for (i=0; i<5; i++) {
                printf("Hello World:%d\n", i);
        }



        printf("test first!\n");

        printf("test second!\n");

        printf("Good bye!\n");



        return 0;
}

2、编译测试程序、编译需要加选项g选项

arm-linux-gcc -g test.c -o test

在这里插入图片描述

3、将test程序,和gdbserver文件拷贝到开发板中

首先将test程序,和gdbserver文件拷贝到share文件夹

cp -f test ../share/
cp -f ../tools/gdb-7.12/gdb/gdbserver/gdbserver ../share/

在这里插入图片描述
开发板,NFS挂载Ubuntu,将test程序,和gdbserver文件拷贝到根目录

cp -f /mnt/test /
cp -f /mnt/gdbserver /

在这里插入图片描述

四、GDB的使用

1、首先在开发中运行gdbserver

其中192.168.0.118为 Ubuntu 的 IP 地址
board#

./gdbserver 192.168.0.118:6666 /test

在这里插入图片描述

2、Ubuntu执行arm-linux-gdb test 请求

远程 gdb 调试
Ubuntu$

arm-linux-gdb test

即可得到如下界面,进入GDB调试命令界面

Ubuntu$
在这里插入图片描述

在GDB输入命令窗口,(输入target remote 开发板IP地址+开发板刚刚输入的端口号)

3、输入开发板的IP地址和设置的端口号

Ubuntu$

 target remote 192.168.0.231:6666

Ubuntu$
在这里插入图片描述
可以在开发板,终端,看到打印输出了“Remote debugging from host ,表明GDB远程调试连接到了Ubuntu,连接成功。

board#在这里插入图片描述

五、GDB命令的使用

1、打断点,b

Ubuntu$
在这里插入图片描述

2、显示断点,info b

Ubuntu$
在这里插入图片描述

3、调试运行,c

board# ----------------------------------------------------------Ubuntu$
在这里插入图片描述

4、退出,q

Ubuntu$
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hdh717

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值