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

2019-07-12 15:13发布

使用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方式调试应用程序了。