搭建嵌入式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 <stdio.h>

int

func(int n){

     int   sum=0, i;

     for (i=0; i<n; 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方式調試應用程序了。


發佈了33 篇原創文章 · 獲贊 17 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章