gdb的編譯及使用

2021-06-16 08:12:11 字數 1500 閱讀 1813

參考:

如果第一次配置錯誤,導致編譯失敗,重新修改配置後,可能還是不能生成正確的makefile檔案,提示類似

「 target_alias' has changed since the previous run」的資訊,具體不計的了

可能需要重新刪除**重來

設定環境變數

$ sudo vi /etc/profile

在末尾新增export path=$path:/usr/local/arm-gdb/bin,儲存

$ source /etc/profile(使環境變數生效)

4、生成gdbserver

$ cd /opt/gdb-7.3.1/gdb/gdbserver

$ ./configure --target=arm-linux --host=arm-linux

--target=arm-linux表示目標平台,

--host表示主機端執行的是arm-linux-gdb

$ make cc=/usr/local/arm/4.3.2/bin/arm-linux-gcc (必須用arm-linux-gcc 注可以是

arm-none-linux-gnueabi-gcc,根據自己的編譯器需要進行修改)

把gdbserver拷貝到開發板/usr/local/debug目錄下

5、除錯

假設生成的程式為hello,開發板ip為192.168.1.10,主機ip192.168.1.3

開發板:

將hello拷貝到開發板上/usr/local/debug目錄下

並執行./gdbserver 192.168.1.3(此ip是除錯主機的ip):10000(此埠和主機上的埠要一致) hello

process hello created;pid=1153

listing on port 10000

在主機上:

/usr/local/arm-gdb/arm-linux-gdb hello

(gdb)target remote 192.168.1.10(此ip是開發板的ip):10000(此埠和開發板的埠要一致)

此時,開發板的輸入會有類似如戲資訊

remote debugging from 192.168.1.3

然後就可以在提示(gdb)下輸入gdb命令進行除錯了

退出gdb命令是輸入quit

附錄:1)若make時遇到錯誤:「configure: error: no termcap library found」

則需要安裝庫:sudo apt-get install libncurses5-dev,然後重新make

2)拷貝gdbserver前,可用arm-linux-strip命令將gdbserver除錯符號資訊刪除

3)在安裝arm-linux-gcc時,在/usr/local/arm/4.3.2/bin目錄下已經有arm-linux-gdb

可以先刪除該目錄下的所有gdb:$ sudo rm *gdb*

以便使用新編譯的arm-linux-gdb

gdb的編譯 使用

2解壓 xd d gdb 8.2.tar.xz tar xvf gdb 8.2.tar.gz 3新建build資料夾 mkdir build 4配置 cd build gdb 8.2 configure prefix opt gdb prefix opt gdb表示在make install的時候,...

使用gcc編譯gdb除錯

在linux系統中,預設是沒有安裝gcc編譯器的,可以通過命令 rpm q grep gcc 來檢視。安裝命令為 yum y install gcc 安裝後,編寫乙個.c結尾的檔案。gcc test.c 就會預設輸出乙個a.out的輸出檔案,這個輸出檔案就是可執行檔案。如果加上 o選項,則可以自定目...

交叉編譯GDB

gdb是一款強大的除錯工具,不多介紹了 解壓檔案tar xf gdb 7.9.tar.gz配置編譯 編寫編譯指令碼 bin bash configure cc opt mipsel gcc472 glibc216 mips32 bin mipsel linux gcc enable static c...