1. 程式人生 > >gdb和gdbserver的介紹與anzhuang

gdb和gdbserver的介紹與anzhuang

一、

就目前而言,嵌入式 Linux系統中,主要有三種遠端除錯方法,分別適用於不同場合的除錯工作:用ROM Monitor除錯目標機程式、用KGDB除錯系統核心和用gdbserver除錯使用者空間程式。這三種除錯方法的區別主要在於,目標機遠端除錯stub 的存在形式的不同,而其設計思路和實現方法則是大致相同的。
     而我們最常用的是除錯應用程式。就是採用gdb+gdbserver的方式進行除錯。在很多情況下,使用者需要對一個應用程式進行反覆除錯,特別是複雜的程式。採用GDB方法除錯,由於嵌入式系統資源有限性,一般不能直接在目標系統上進行除錯,通常採用gdb+gdbserver的方式進行除錯。Gdbserver在目標系統中執行,gdb則在宿主機上執行。


進行GDB除錯,目標系統必須包括gdbserver程式,宿主機也必須安裝gdb程式很多人只知道用gdb來除錯程序,卻不知道gdbServer的存在,從名稱上也能猜出來,gdbServer是gdb的一個服務端,那gdb必然就是相對應的那個客戶端了。這二則之間是TCP連線,gdb傳送命令給gdbServer,gdbServer收到命令後會控制程序進行相對應的操作,然後把操作結果反饋給gdb。

二、安裝gdb、gdbServer 

1、首先從http://ftp.gnu.org/gnu/gdb/上找到系統需要的那個gdb安裝包,注意版本號要一樣。 
2、在linux上用gdb -v來檢視gdb的版本,如: 


這裡寫圖片描述

這裡的gdb版本是7.6.1-64.e17,因此在網站上找到gdb-7.6.1.tar.gz該包下載。

3、解壓:tar zxf gdb-7.6.1.tar.gz 
4、在linux系統下,不需要設定/configure –target=arm-linux,只需要執行./configure即可,自動會生成Makefile檔案,隨後make,直到編譯完成。 
5、執行cd gdb-7.6.1/gdb/gdbserver,在gdbServer這個目錄下有一個gdbServer的可執行檔案,只需要把該檔案拷貝到目標機子的/usr/bin目錄下即可。 

toolchain下載地址:

http://gnutoolchains.com/download/