栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

搭建gdb+gdbserver远程调试环境

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

搭建gdb+gdbserver远程调试环境

 1,下载链接:ftp://sourceware.org/pub/gdb/releases/

2,Linux系统自带gdb工具,可是无法用在ARM调试中,需要单独编译arm-linux-gdb。

tar zxvf gdb-9.1.tar.gz
cd gdb-9.1/

生产makefile

./configure   --prefix=$pwd/__install

–target:指定目标平台,–prefix:指定安装路径。

编译make  和 make install

3,可能出现的问题

(1)GDB9.1 Remote ‘g’ packet reply is too long错误

修改gdb/remote.c文件,屏蔽process_g_packet函数中的下列两行:

 if (buf_len > 2 * rsa->sizeof_g_packet)
     error (_(“Remote ‘g’ packet reply is too long: %s”), rs->buf);

换成如下几行:

 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;
      }
   }

(2)arm-linux-gdb在调试的时候会加载目标系统的库文件,如果出错时便无法调试

通过指令[set solib-search-path+库文件路径]来手动加载目标系统库文件

(gdb) set solib-search-path /home/alinx/boot/config/gcc-linaro/arm-linux-gnueabi/libc/lib/

4,调试步骤

arm-linux-gnueabihf-gcc -g tcp_test.c -o transdata

宿主机IP:172.27.226.141
目标板IP:172.27.226.16

(1)目标板上运行gdbserver
./gdbserver 172.27.226.141:5000 transdata

(2)宿主机上运行arm-linux-gdb

         arm-linux-gdb test

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913877.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号