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

建立嵌入式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

分享到:
评论

相关推荐

    嵌入式gdb调试环境建立

    《嵌入式GDB调试环境建立详解》 嵌入式开发中,调试是必不可少的一环,而GDB作为一款强大的源代码级调试器,对于理解程序的运行逻辑、定位问题至关重要。本文将详细介绍如何在Linux环境下,为嵌入式设备建立GDB调试...

    嵌入式系统/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的嵌入式系统调试器的设计与实现 #### 一、引言 嵌入式系统在现代科技中扮演着至关重要的角色,涵盖了从家用电器到航空航天等多个领域。随着嵌入式技术的飞速发展,对高质量嵌入式软件的需求日益增加,...

    建立jlink+arm-linux-insight+GDB Server调试环境

    ### 建立jlink+arm-linux-insight+GDB Server调试环境 ...通过以上步骤,便可在Windows主机与Ubuntu虚拟机之间建立起一套完整的jlink+arm-linux-insight+GDB Server调试环境,实现高效的嵌入式开发与调试。

    建立gdb-gdbserver交叉调试环境的文档和gdb源码包

    本文将深入讲解如何建立gdb与gdbserver的交叉调试环境,以便在目标硬件上远程调试代码。我们将以gdb-7.6源码包为例,结合提供的"gdb-gdbserver交叉调试环境的建立.pdf"文档,详细阐述整个过程。 首先,理解什么是...

    嵌入式linux应用程序调试方法

    嵌入式 Linux 应用程序调试方法是一份详细的调试指南,涵盖了嵌入式 Linux 的 NFS 开发环境的建立、GDB 调试应用程序、内存工具、C/C++ 代码覆盖、性能 profiling 工具等方面的知识点。下面将对标题、描述、标签和...

    GDB.rar_GDB chm -CSDN_gdb_gdb beginner_gdb chm_gdb调试

    《GDB调试手册》是为嵌入式系统开发者和初学者提供的一份宝贵资源,它详细阐述了GDB(GNU调试器)的使用方法和调试技巧。GDB是一款强大的开源调试工具,广泛应用于Linux和其他类UNIX环境,用于调试C、C++等语言编写...

    嵌入式应用程序调试方法

    总结来说,嵌入式应用程序的调试涉及多个层面,从建立调试环境到使用gdbserver进行远程调试,再到问题排查和性能优化,每个环节都需要扎实的技术基础和实践经验。理解并掌握这些调试方法,将有助于提升开发效率,...

    建立嵌入式linux开发环境实验.doc

    嵌入式Linux开发环境的建立是进行嵌入式系统开发的基础步骤,对于初学者和专业开发者都至关重要。本文档详细介绍了如何一步步构建这样的环境,主要包括创建C语言程序、安装交叉编译器、配置TFTP服务以及设置NFS服务...

    MIPS平台上移植和使用GDB调试工具1.docx

    ### MIPS平台上移植和使用GDB调试工具 #### 一、前言 在嵌入式开发领域,特别是针对特定架构如MIPS(Microprocessor without Interlocked Pipeline Stages)平台的开发过程中,有效地使用调试工具对于提高软件质量...

    利用GDB进行远程调试.doc

    这一过程主要依靠两个关键组件:GDBSERVER作为目标机上的代理(stub),负责与运行在桌面系统上的GDB调试器通信。这种架构使得开发者可以在桌面环境中进行调试,同时观察和控制远端目标系统的应用程序行为。 ##### ...

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

    QT远程调试环境搭建是嵌入式开发中一个重要的环节,特别是在使用ARM开发板时,能够有效地帮助开发者在本地PC上调试运行在远程设备上的QT应用程序。以下是对整个过程的详细说明: 1. **网络配置**:首先,确保你的...

    ubuntu 嵌入式开发环境建立(完整版)

    从提供的文件内容来看,文章主要讲述了在Ubuntu系统下建立嵌入式开发环境的全过程。Ubuntu作为一种流行的开源操作系统,它在嵌入式开发领域中也得到了广泛的应用。以下是对文章内容的详细解读: 首先,文章指出了...

    如何在VIM中对嵌入式软件进行调试[参考].pdf

    5. 编译嵌入式gdb调试器服务端gdbserver,使用相应的交叉编译器和配置选项。 6. 在目标板上启动gdbserver,并在PC主机上运行GDB客户端进行连接。通过TCP/IP连接,设置调试参数,然后加载目标程序。 7. 在VIM中打开...

    window 平台用的gdb,远程调试arm

    总的来说,"window 平台用的gdb,远程调试arm"涉及到的知识点包括:Windows环境下的GDB使用、ARMv7架构的调试、GDB服务器的配置与使用、远程调试的基本流程以及交叉编译工具链的理解和应用。掌握这些技能,开发者...

    嵌入式linux应用程序调试.pdf

    本文档由王奔于2009年4月24日在南京师范大学撰写,详细介绍了如何在嵌入式Linux系统下,利用gdb和gdbserver建立交叉调试环境,针对FS2410开发板进行应用调试。 首先,调试准备工作涉及安装gdb调试工具。可以从GNU...

Global site tag (gtag.js) - Google Analytics