`
tomhibolu
  • 浏览: 1383152 次
文章分类
社区版块
存档分类
最新评论

建立嵌入式gdb调试环境

 
阅读更多

一.下载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 <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 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本地调试方法相同

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mistyeyed/archive/2010/01/23/5248978.aspx

分享到:
评论

相关推荐

    嵌入式系统/ARM技术中的建立嵌入式gdb调试环境

    作者:蒙洋,华清远见嵌入式学院讲师。    一、下载gdb-*.tar.gz源代码  http://ftp.gnu.org/gnu/gdb/  二、编译 GDB  #tar zxvf gdb-*.tar.gz  2.1、编译GDB Server  #cd gdb-*  #./configure --...

    嵌入式gdb调试环境建立

    本文档介绍的是嵌入式gdb调试环境建立。

    QT远程调试环境搭建过程详细说明

    以ARM开发板为例详细介绍QT远程调试环境搭建过程。包括搭建网络,挂载NFS,建立OpenSSH, GDB编译以及QT远程调试设置。

    嵌入式设计及linux驱动开发指南——基于ARM9处理器.pdf

    第3章 创建嵌入式系统开发环境 3.1 嵌入式Linux的开发环境 3.2 Cygwin 3.3 虚拟机 3.4 交叉编译的预备知识 3.4.1 Make命令和Makefile文件 3.4.2 binutils工具包 3.4.3 gcc编译器 3.4.4 Glibc库 3.4.5 GDB ...

    嵌入式\(高校应用案例)北航软件学院

    嵌入式Linux开发环境的建立;多线程应用程序设计;串行端口程序设计;A/D接口实验;D/A接口实验;简单的嵌入式WEB服务器实验;RS-485通讯实验;直流与步进电机实验;内核驱动设计入门――模块方式驱动实验;内核...

    ARM嵌入式系统开发手册

    7.2.3 使用GDB 调试程序 177 7.3 建立uClinux 开发环境 180 7.3.1 建立交叉编译器 181 7.3.2 uClinux 针对硬件的改动 184 7.3.3 编译uClinux 内核 185 7.3.4 内核的加载运行 187 7.4 在uClinux 下开发应用程序 188 ...

    Nios II葵花宝典-Nios II嵌入式系统设计教程

    第一章为嵌入式开发环境的建立,包括Fedora 13的安装、Quartus II 10.0 sp1 for linux的安装、Nios II EDS 10.0 sp1 for linux的安装、ModelSim-Altera 10.0 for linux的安装、USB Blaster驱动程序的安装以及kermit...

    farsight 内核移植实验手册

    实验一 嵌入式Linux开发环境建立 - 3 - 实验二 gdb-server移植 - 7 - 实验三 移植U-Boot-1.3.1实验 - 10 - 实验四 Linux-2.6.22.6内核编译 - 31 - 实验五 Linux-2.6.22.6内核移植--网卡驱动的添加 - 36 - 实验六 ...

    S3C2410完全开发流程

    第7部分介绍了嵌入式linux开发中使用gdb进行调试的详细过程。 此文档目前完成了1、2、3部分,后面部分将陆续完成。希望能对各位在嵌入式开发方面献上棉力。 欢迎来信指出文中的不足与错误,欢迎来信探讨技术问题。

    SOPC系统入门教程

    6.3 GDB 调试 6.4 添加用户外设 6.5 RTL 仿真 6.6 Flash 编程 6.7 用户指令和DMA 6.8 MP3 播放器 附录 1:Nios 嵌入式处理器 32 位指令集 附录 2:Nios 嵌入式处理器开发板-APEX 20K200E 附录 3:...

    SOPC 系统设计入门教程

    6.3 GDB 调试 6.4 添加用户外设 6.5 RTL 仿真 6.6 Flash 编程 6.7 用户指令和 DMA 6.8 MP3 播放器 附录 1:Nios 嵌入式处理器 32 位指令集 附录 2:Nios 嵌入式处理器开发板-APEX 20K200E 附录 3:...

    SkyEye教程

    采用SkyEye可以有效地提高工作效率,因为你可以直接在μCOS-II和μCLinux for SkyEye上进行开发和调试,而与具体硬件打交道的各种driver已经存在,且有源码级调试环境,只需关心高层的逻辑设计和实现就可以了。...

    SOPC系统设计入门教程

    系统设计实例 6.1 建立硬件需求 6.2 创建一个基本的Nios设计 6.3 GDB调试 6.4 添加用户外设 6.5 RTL仿真 6.6 Flash编程 6.7 用户指令和DMA 6.8 MP3播放器 附录1:Nios嵌入式...

    ARM应用系统开发详解

    7.2.3 使用GDB调试程序 7.3 建立uClinux开发环境 7.3.1 建立交叉编译器 7.3.2 uClinux针对硬件的改动 7.3.3 编译uClinux内核 7.3.4 内核的加载运行 7.4 在uClinux下开发应用程序 7.4.1 串行通信 7.4.2 socket编程 ...

    ARM开发详解.pdf

    7.2.3 使用GDB 调试程序 177 7.3 建立uClinux 开发环境 180 7.3.1 建立交叉编译器 181 7.3.2 uClinux 针对硬件的改动 184 7.3.3 编译uClinux 内核 185 7.3.4 内核的加载运行 187 7.4 在uClinux 下开发应用程序 188 ...

    ARM详解 ARM入门必备

    7.2.3 使用GDB 调试程序 177 7.3 建立uClinux 开发环境 180 7.3.1 建立交叉编译器 181 7.3.2 uClinux 针对硬件的改动 184 7.3.3 编译uClinux 内核 185 7.3.4 内核的加载运行 187 7.4 在uClinux 下开发应用程序 188 ...

    uboott移植实验手册及技术文档

    【实验环境】 1、Ubuntu 7.0.4发行版 2、u-boot-1.3.1 3、FS2410平台 4、交叉编译器 arm-softfloat-linux-gnu-gcc-3.4.5 【实验步骤】 一、建立自己的平台类型 (1)解压文件 #tar jxvf u-boot-1.3.1.tar.bz...

    MySQL 5.1参考手册 (中文版)

    5.9.6. 建立表维护计划 5.9.7. 获取关于表的信息 5.10. MySQL本地化和国际应用 5.10.1. 数据和排序用字符集 5.10.2. 设置错误消息语言 5.10.3. 添加新的字符集 5.10.4. 字符定义数组 5.10.5. 字符串比较支持 5.10.6....

Global site tag (gtag.js) - Google Analytics