1. 程式人生 > >【嵌入式】樹莓派3b+搭建gdb和gdbserver教程

【嵌入式】樹莓派3b+搭建gdb和gdbserver教程

目錄

(一)樹莓派端配置gdbserver

a)下載

  1. 進入pi開啟火狐搜尋器,輸入該下載連結:http://ftp.gnu.org/gnu/gdb/,我下載的版本是 gdb-8.2.tar.gz在這裡插入圖片描述
  2. 火狐瀏覽器下載目錄:/home/pi/Downloads
    在這裡插入圖片描述
  3. 將壓縮包copy到/home/pi目錄下(進入資料夾copy就行)
    在這裡插入圖片描述
  4. 到(/home/pi目錄)解壓安裝包:
tar xvzf gdb-8.2.tar.gz

b)配置gdb

  1. 進入解壓後的安裝包:
cd gdb-8.2
  1. 配置環境:
./configure --target=arm-linux --prefix=/usr/local/arm-gdb -v

注意:如果你之前有配置過gdb,且環境和我這裡設定不一樣;
請刪掉你之前解壓過的包,重新解壓一次,再配置.

在這裡插入圖片描述
完成如圖:
在這裡插入圖片描述

  1. 編譯:(1小時左右,耐心等待~)
make

在這裡插入圖片描述

完成如圖:
在這裡插入圖片描述

  1. 執行命令:
sudo make install

在這裡插入圖片描述
完成:
在這裡插入圖片描述

  1. 如果配置成功:(生成arm-linux-gdb,並存入/usr/local/arm-gdb /bin/,查詢確認下)
    在這裡插入圖片描述

  2. 將生成的arm-linux-gdb檔案拷貝到系統/usr/bin/目錄下,這樣便可以在任何地方很方便的呼叫。

cd /usr/local/arm-gdb/bin
ls
sudo cp arm-linux-gdb /usr/bin/

在這裡插入圖片描述
gdb配置完成!

c)配置gdbserver

  1. 進入/home/pi/gdb-8.2/gdb/gdbserver資料夾:
cd /home/pi/gdb-8.2
/gdb/gdbserver

在這裡插入圖片描述

export PATH=$PATH:/usr/local/arm-gdb/bin
  1. 環境
./configure --target=arm-linux --host=arm-linux

在這裡插入圖片描述
完成如圖:
在這裡插入圖片描述

  1. 編譯
make CC=arm-linux-gcc

前提:gcc已經配置在環境變數中了

在這裡插入圖片描述
編譯gdbserver不需要執行make install命令,make之後在當前目錄下會生成可執行程式gdbserver,將其拷貝到目標系統中。

(二)Win10安裝arm-linux-gnueabihf-gdb

輔助工具下載連結:http://gnutoolchains.com/raspberry/
安裝raspberry-gcc6.3.0-r3.exe,我的系統是Win10:
在這裡插入圖片描述
解壓安裝包,執行安裝.exe檔案:
在這裡插入圖片描述

可選擇自定義安裝路徑,建議不要改包名;
最後安裝到99.99%位置貌似卡住,忽略,直接Cancel

你將獲得如下目錄:(我們需要的arm-linux-gnueabihf-gdb.exe等包都在~\bin目錄下)
在這裡插入圖片描述
在這裡插入圖片描述

(三)交叉編譯test

樹莓派端紫色標識

  • 登入樹莓派pi(putty、teamviewer均可)
  • 新建 test.cpp測試程式
vim test.cpp
  • 拷貝 程式碼
#include <stdio.h>
int main()
{
    printf("Hello, world\n");
    return 0;
}
  • gcc編譯可執行檔案
gcc test.cpp -o test
  • 開啟gdbserver ,以test檔案作為
gdbserver :1234 test

在這裡插入圖片描述
PC端藍色標識

  • 執行 arm-linux-gnueabihf-gdb.exe
  • gdb中輸入以下命令以連線到Raspberry PI並開始除錯你的程式:
target remote <Raspberry IP address>:1234

我的pi的ip地址為192.168.43.24;電腦端的ip地址為192.168.43.241
(gdb)target remote 192.168.43.24:1234
在這裡插入圖片描述

  • 現在可以在樹莓派端看見pc端已成功連線gdbserver
    在這裡插入圖片描述
  • pc端除錯
b main
c

樹莓派端執行pc端的指令,輸出hello,world:
在這裡插入圖片描述

  • 輸入n退出
n

在這裡插入圖片描述


參考部落格:http://gnutoolchains.com/raspberry/tutorial/