建立嵌入式gdb调试环境

出处:likee 发布于:2009-07-13 11:57:25

  作者:蒙洋,华清远见嵌入式学院讲师。

 

  一、gdb-*.tar.gz源代码

  https://ftp.gnu.org/gnu/gdb/

  二、编译 GDB

  #tar zxvf gdb-*.tar.gz

  2.1、编译GDB Server

  #cd gdb-*

  #./configure --target=ARM-linux --prefix=/usr/local/arm-gdb

  #make

  注意: 这里如果你用的是gcc-4.3.2的话,编译可能会出错!你可以改成 gcc-4.1 就可以顺利编译通过

  编译ARM用的GDB时出现error: no termcap library found错误的解决方法2009年03月28日 星期六 21:55在Ubuntu下编译gdb时出现如下错误:

  ........

  checking for library containing gethostbyname... none required

  checking for library containing socketpair... none required

  checking for library containing waddstr... no

  checking for library containing dlgetmodinfo... no

  checking for library containing tgetent... no

  configure: error: no termcap library found

  make[1]: *** [configure-gdb] 错误 1

  解决方法:sudo apt-get install libncurses5-dev

  安装完后,在make就OK了!

  #make install // 生成/usr/local/arm-gdb/bin

  2.2、编译GDB Client

  #cd ./gdb/gdbserver

  #export PATH=$PATH:/usr/local/arm-gdb/bin

  #./configure --target=arm-linux --host=arm-linux

  #vi config.h

  //#define HAVA_SYS_REG_H //注释此句

  #make CC=arm-softfloat-linux-gnu-gcc //编译用于目标机的stub程序 生成gdbserver是GDB客户端程序,在板子上运行。

  三、实战调试

  1.编辑文件

  # vi gd^est.c

  1 #include <stdio.h>

  2

  3 int

  4 func(int n){

  5      int sum=0, i;

  6      for (i=0; i<n; i++){

  7           sum += i;

  8      }

  9      return sum;

  10 }

  11

  12 int

  13 main(void)

  14 {

  15      int i;

  16      long result = 0;

  17      for (i=0; i<=100; i++){

  18            result += i;

  19      }

  20

  21      printf("result[1-100] = %d \n", result);

  22      printf("resutl[1-225] = %d \n", func(255));

  23

  24      return 0;

  25 }

  # arm-linux-gcc -g gd^est.c -o gd^est // 交叉编译

  2.文件到目标板: gd^est和gdbserver

  假设 host pc ip:192.168.1.45

  board ip:192.168.1.180

  将文件拷贝到目标板上:

  先将gd^est和gdbserver两个文件拷贝到主机的/tftpboot目录下

  在目标板的Linux中运行:

  #mount 192.168.1.108:/tftpboot /mnt/nfs

  #cd /mnt/nfs

  #ls

  看是否有gd^est和gdbserver两个文件。

  3.运行调试

  client board:

  #./gdbserver 192.168.1.45:1234 gd^est // 目标板上运行gd^est *端口1234

  host pc:

  #cd /usr/local/arm-gdb/bin/

  #copy gd^est /usr/local/arm-gdb/bin/ // 将前面编译的文件gd^est拷贝到此目录

  #./arm-linux-gdb gd^est

  (gdb)target remote 192.168.1.180:1234 // 连接到开发板 成功后就可以进行调试

  (gdb)list or l

  (gdb)break func

  (gdb)break 22

  (gdb)info br

  (gdb)continue or c // 这里不能用 run

  (gdb)next or n

  (gdb)print or p result

  (gdb) finish // 跳出func函数

  (gdb) next

  (gdb) quit

  建立连接后进行gdb远程调试和gdb本地调试方法相同

  “本文由华清远见https://www.embedu.org/index.htm提供”



  
关键词:建立嵌入式gdb调试环境嵌入式

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

2023全国大学生嵌入式芯片与系统设计竞赛,海思赛道,工程机械远程管理与安全检测系统
广告
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:
技术客服:

0571-85317607

网站客服电话

0571-85317606

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!