搭建嵌入式linux应用程序调试环境

使用gdb搭建嵌入式Linux调试环境,使用网络与开发板通信,调试应用程序

一、下载gdb源码

下载地址:ftp://ftp.gnu.org/gnu/gdb/

我使用的版本为:gdb-7.7.1.tar.gz

二、编译gdb client

(1)tar xvzf gdb-7.7.1.tar.gz

(2)./configure --target=arm-linux --prefix=/home/shirf/my_explore/linux_explore/debug_type/gdb_file/gdb_client

(其中编译、安装后的可执行文件放到/home/shirf/my_explore/linux_explore/debug_type/gdb_file/gdb_client,这个目录可自定义)

(3)make

(4)make install

(5)在目录/home/shirf/my_explore/linux_explore/debug_type/gdb_file/gdb_client/bin/下arm-linux-gdb就为在pc端运行的调试工具,可以通过

export PATH=$PATH:/home/shirf/my_explore/linux_explore/debug_type/gdb_file/gdb_client/bin/讲该目录添加到环境变量中。

三、编译gdb servercd 

(1)还是进入解压完的gdb-7.7.1下的gdb/gdbserver/

(3) ./configure --target=arm-linux --host=arm-linux

(4)vi config.h

         注释:#define HAVA_SYS_REG_H 变为//#define HAVA_SYS_REG_H

(5)make CC=arm-none-linux-gnueabi-gcc(其中arm-none-linux-gnueabi-gcc为我的编译器)

(6)gdbserver即为运行在板子上的gdb

四、实战

(1)源码

#include

int

func(int n){

     int   sum=0, i;

     for (i=0; i
         sum += i;
     }

     return sum;
 }

 int

 main(void)
 {
    int   i;
    long result = 0;

    for (i=0; i<=100; i++){
        result += i;
    }

    printf("result[1-100] = %d /n", result);
    printf("resutl[1-225] = %d /n", func(255));

    return 0;
}

(2)编译源码

vi arm_gdb_test.c 并且复制源码

arm-none-linux-gnueabi-gcc -g arm_gdb_test.c -o arm_gdb_test


(3)复制arm_gdb_test和gdbserver

我是nfs文件系统与板子建立共享目录方式,进行文件复制


(4)开发板运行应用程序

./gdbserver 192.168.0.103:12340 arm_gdb_test

192.168.0.103为我PC机地址,12340为临时gdb使用的端口,可以自己指定

其实可以将192.168.0.103:12340 变为*:12340,通过netstat -an 发现开发板建立一个TCP监听端口为12340的套接字,

这个套接字可以接收任何地址的请求。

(5)在PC端调试程序

将/home/shirf/my_explore/e9_platform/arm_gdb/gdb_bin/bin/arm-linux-gdb复制到PC端生成的可执行文件处,用于调试用

./arm-linux-gdb  arm_gdb_test

target remote 192.168.0.200:12340(用于链接开发板)

此时就可以按照gdb方式调试应用程序了。


你可能感兴趣的:(linux)