學習筆記 使用gdbserver

2021-07-16 07:31:54 字數 2328 閱讀 5501

在micro2440上測試通過,作此文筆記。

gdb-6.6.tar.bz2。

2、解壓gdb原始碼

比如我的原始碼壓縮包路徑是/home/nzq/arm_rd/gdb-6.6.tar.gz

> cd /home/nzq/arm_rd/

> tar vxfz gdb-6.6.tar.gz -c ../src/ /* 解壓到../scr目錄 */

3、建立gdb和gdbserver的編譯目錄

> mkdir /home/nzq/build/mygdb      /*在這個兩個目錄下配置和編譯*/

> mkdir /home/nzq/build/mygdbserver

4、配置和編譯gdb

> cd /home/nzq/build/mygdb

> ../../src/gdb-6.6/configure --target=arm-linux --prefix=/home/nzq/build/mygdb

配置的最後一行顯示:"creating makefile"配置完畢

說明:"../../src/gdb-6.6/"是gdb原始碼所在資料夾;target是目標板,micro2440是arm-linux prefix是目標檔案的安裝目錄。因為我已經安裝過arm交叉工具/usr/local/arm/4.3.2/bin/下已經有乙個arm-linux-gdb,所以我將安裝目錄設在當前目錄(make install時用到)。

> make

make完成後在當前目錄下生成了gdb/gdb等等

> make install

install完成後在當前目錄bin資料夾下生成了:

arm-linux-gdb  arm-linux-gdbtui  arm-linux-run

4、配置和編譯gdbserver

> cd /home/nzq/build/mygdbserver

> chmod +x ../../src/gdb-6.6/gdb/gdbserver/configure

> cc=arm-linux-gcc ../../src/gdb-6.6/gdb/gdbserver/configure \

--host=arm-linux --prefix=/home/nzq/build/mygdbserver

> make

make完成後在當前目錄下生成gdbsever等檔案

> make install

install完成後在當前目錄bin資料夾下生成了:gdbsever檔案。我的理解應該是將前面的gdbserver拷貝到安裝目錄下的bin檔案下而已,正好前年定義的安裝目錄就是當前目錄。

5、編譯測試程式

/***************************************/

#include

#include

int main(void)

/***************************************/

> arm-linux-gcc -g hello.c -o hello /*使用-g選項編譯,除錯的時候可以看到源***/

5、將gdbserver和測試程式hello拷貝到arm板上執行

我使用nfs做為arm板的根檔案系統,因此將gdbserver拷貝到nfs的目錄下就行了。關於nfs需要在/etc/exports檔案中設定,不在次詳細說明。

先用ifconfig看一下arm板的ip位址是多少,micro2440預設設定是192.168.1.230。

% gdbserver 192.168.1.102:2345 hello (%:用"%"表示arm板終端顯示)

gdbserver開始偵聽2345埠,然後啟動hello

這時候arm板終端列印:

process hello created; pid = 575

listening on port 2345

6、回到host終端

> ./arm-linux-gdb hello

最後一行顯示:

this gdb was configured as "--host=i686-pc-linux-gnu --target=arm-linux"...

說明執行在x86的host上,但除錯目標是arm**。

> (gdb) target remote 192.168.1.230:2345

這時候arm板終端顯示:

remote debugging from host 192.168.1.102

說明和主機已經連線上了。

剩下的和x86上的gdb除錯一樣了。

另外arm-linux-gdbtui帶簡單的文字介面顯示,看起來可能會直觀一些。

0 給主人留下些什麼吧!~~

gdbserver移植使用

gdbserver用法其實和gdb是一樣的 還要記住一點ubuntu12.04中預設的gdb和arm linux gdb是不一樣的。linux板子 gdbserver 192.168.1.108 2222 run.exeubuntu12.04機子 arm linux gdb run.exe 如果不加...

ARM 交叉編譯 使用gdbserver

1,編譯gdb過程中需要使用texinfo,先安裝texinfo sudo apt get install texinfo 2,解壓配置編譯 arm linux gnueabihf端 host arm linux gnueabihf windows host不用配置,預設即可 configure t...

gdb和gdbserver的安裝和使用

一 遠端除錯環境由宿主機gdb和目標機除錯stub共同構成,兩者通過串列埠或tcp連線。使用gdb標準遠端序列協議協同工作,實現對目標機上的系統核心和上 層應用的監控和除錯功能。除錯stub是嵌入式系統中的一段 作為宿主機gdb和目標機除錯程式間的乙個媒介而存在。就目前而言,嵌入式 linux系統中...