一、下载gdb-6.4.tar.gz源代码

http://ftp.gnu.org/gnu/gdb/

二、编译 GDB

#tar zxvf gdb-6.4.tar.gz

2.1、编译GDB Server

#cd gdb-6.4

#./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 gdbtest.c

1 #include

2

3 int

4 func(int n){

5      int sum=0, i;

6      for (i=0; 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 gdbtest.c -o gdbtest // 交叉编译

2.下载文件到目标板: gdbtest和gdbserver

假设 host pc ip:192.168.1.45

board ip:192.168.1.180

将文件拷贝到目标板上:

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

在目标板的Linux中运行:

#mount 192.168.1.108:/tftpboot /mnt/nfs

#cd /mnt/nfs

#ls

看是否有gdbtest和gdbserver两个文件。

3.运行调试

client board:

#./gdbserver 192.168.1.45:1234 gdbtest // 目标板上运行gdbtest 监听端口1234

host pc:

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

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

#./arm-linux-gdb gdbtest

(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本地调试方法相同

linux嵌入式gdb调试指南,建立嵌入式gdb调试环境相关推荐

  1. GDB调试指南(入门,看这篇够了)

    写这篇文档的目的是对前面GDB的知识做一次总览,本文为GDB调试指南,参考GDB调试手册,目前已有的篇目: 启动调试 断点设置 查看源码 单步调试 查看变量 前言 GDB是Linux下非常好用且强大的 ...

  2. gdb 调试_GDB调试指南-源码查看

    前言 我们在调试过程中难免要对照源码进行查看,如果已经开始了调试,而查看源码或者编辑源码却要另外打开一个窗口,那未免显得太麻烦.文本将会介绍如何在GDB调试模式下查看源码或对源码进行编辑. 准备工作 ...

  3. GDB调试指南-单步调试

    前言 前面通过<启动调试>,<断点设置>,<变量查看>,我们已经了解了GDB基本的启动,设置断点,查看变量等,如果这些内容你还不知道,建议先回顾一下前面的内容.在启 ...

  4. 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(一)(转)

    自 MiniGUI 从 1998 年底推出以来,越来越多的人开始选择 MiniGUI 在 Linux 上开发实时嵌入式系统.为了帮助嵌入式软件开发人员使用 MiniGUI编写出更好的应用程序,我们将撰 ...

  5. 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南题八——MiniGUI 和其他嵌入式 Linux 上的图形及图形用户界面系统

    简介: 为了让读者对嵌入式 Linux 当中能够使用的图形及图形用户界面有个较为全面的认识,本文将为读者介绍一些嵌入式 Linux 系统中常见的图形及图形用户界面系统,并作为<基于 Linux ...

  6. 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南

    内容: 1 Linux 图形领域的基础设施 2 Linux 图形领域的高级函数库 3 面向嵌入式Linux 系统的图形用户界面 4 小结 关于作者 相关内容: 主题一:选择MiniGUI-Thread ...

  7. 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八)

    基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八) MiniGUI 和其他嵌入式 Linux 上的图形及图形用户界面系统 魏永明 (ymwei@minigui.org) 自由撰稿人 ...

  8. 10001.基于Linux和MiniGUI的嵌入式系统软件开发指南(转载)

    1 Linux 图形领域的基础设施 2 Linux 图形领域的高级函数库 3 面向嵌入式Linux 系统的图形用户界面 4 小结 关于作者 相关内容: 主题一:选择MiniGUI-Threads 或者 ...

  9. Linux上程序调试的基石(2)--GDB

    3. GDB的实现  GDB是GNU发布的一个强大的程序调试工具,用以调试C/C++程序.可以使程序员在程序运行的时候观察程序在内存/寄存器中的使用情况.它的实现也是基于ptrace系统调用来完成的. ...

最新文章

  1. compass安装使用960 Grid System
  2. 谈谈对于企业级系统架构的理解(zz)
  3. php贺卡生成,用php与mysql的电子贺卡程序
  4. 【供参考】2021 中国一流大学名单(30 所)和中国大学综合实力 700 强出炉!
  5. Spring学习(九)Spring 和数据库编程【了解】
  6. iOS基础-高级视图-UITableView--静态单元格
  7. 【转】ABP源码分析二十五:EventBus
  8. Eclipse中Program arguments和VM arguments的说明
  9. C语言学习笔记---typedef 简介
  10. 【算法设计】最大子矩阵问题
  11. CSDN积分获取规则
  12. 软件测试和初级会计哪个简单,2018年初级会计app刷题哪个好?
  13. CSS相对定位,固定定位,绝对定位
  14. 儿童节html5小游戏,六一儿童节室内小游戏有哪些
  15. 工作多年想转行,有哪些正确的方法及技巧呢
  16. 零基础学C++Note
  17. 产品经理和软件工程师的职能划分
  18. 强化学习训练Chrome小恐龙Dino:最高超过4000分
  19. 写给屌丝程序员的免费空间个人blog的建站攻略
  20. 计算机数据恢复视频教程,快速扫描误删除文件 文件数据恢复软件 视频文件数据恢复效果最佳...

热门文章

  1. webpack4.x实战七,生产模式和开发模式分开打包
  2. CentOS7(64)环境使用rpm命令安装gcc
  3. JavaScript jQuery bootstrap css ajax
  4. 再谈MySQL全库备份
  5. 移动办公之路的行业探索
  6. Cisco 2960交换机配置
  7. 关于行内元素的margin padding一些说明;background-color的范围
  8. 我们来判断一个php函数是否被定义
  9. C#中combobox不可编辑与不可选择
  10. Linux与JVM的内存关系分析(转)