gdbserver遠端除錯嵌入式Linux裝置

2021-05-22 03:20:00 字數 763 閱讀 4932

然而,有些情況下嵌入式裝置的硬體資源很有限,比如我手頭的這個裝置,總的rom空間只有16.5mb,韌體,一些系統程式加一些庫就占去了13mb+,這樣我可以用的空間就只剩下3mb,而乙個交叉編譯得到的gdb二進位制大小有將近9mb,顯然是放不進去的了。所以聰明的人類想到了另一種方法gdbserver +gdb的方法。 gdbserver執行於嵌入式目標裝置,而gdb則執行於開發主機上。gdbserver是乙個只實現了很少功能的程式,一般也就設定斷點或訪問處理器的暫存器或者讀寫記憶體,所以這個二進位制檔案很小,一般也就幾十kb。gdbserver管理目標裝置上的被調式的程式,並等待開發主機上的gdb命令,一旦收到命令進行響應。 目標裝置上gdbserver和開發主機上的gdb通過串列埠或者tcp進行通訊。

remote debugging using 10.0.0.5:3000

0x40000ba0 in ?? ()

(gdb)

接下來就可以使用所有的gdb命令進行除錯了。

(gdb) break fingerprintentry.cpp:405    ----------設定斷點

(gdb) continue -----------------繼續執行程式

gdbserver+gdb除錯的缺點就是檢視源**檔案比較麻煩,網上有個開源軟體叫 clewn,這個軟體使用vim作為gdb的前端介面,結合gdb 的除錯功能,可以動態的程式當前執行的**顯示在vim,檢視**非常方便,運用的是gdbserver+gdb的原理,但是加了乙個vim的gui介面。 我研究以後,再寫一篇關於clewn的文章。

gdb除錯及gdbserver遠端除錯

gdb偵錯程式是一款gnu開發組織並發布的unix linux下的程式除錯工具,具有強大的功能,足有與visual stido媲美,當然友好的介面是沒法相比的,呵呵。開始編譯程式將除錯資訊包含進去,gdb偵錯程式執行在shell中輸入gdb就好,也可以輸入gdb filename,filename是...

gdbserver遠端除錯的具體實現

採用的是nfs目標板掛載本機目錄的方法,當然首先,你得開通本機的nfs共享服務,具體步驟如下 1 進入 etc目錄,vim exports這個檔案,在裡面新增 home 192.168.0.rw,sync 儲存後退出 注 home 為要共享的資料夾的名稱,192.168.0.為本nfs伺服器允許訪問...

android 通過gdbserver 除錯c

有些事真的很煩鎖,但是又不得不做 環境 ubuntu12.04 ndkr9 android sdk android 4.2.2 盒子,已root 過程 1 c 編寫程式 2 ndk build ndk debug 1 強制生成除錯資訊 3 adb push gdbserver system bin ...