使用gdb gdbserver除錯嵌入式程式

2021-07-31 21:07:16 字數 1253 閱讀 7742

如果環境沒有提供交叉編譯程式gdbserver ,

可以參考交叉編譯步驟

是我除錯的例子, 它在客戶端的執行命令如下.

./monitorall -qws -font wenquanyi

1.target 端:

gdbserver --multi 192.168.1.101:1234

啟動gdbserver, 監聽192.168.1.101:1234埠. 支援除錯多個程序

2.host 端:

. debug.sh

把指令碼補充完全,如下:

2.1. debug.sh 的寫法:

#!/bin/bash

arm-linux-gnueabihf-gdb -x gdbinit

gdbinit 是gdb啟動後執行的指令碼檔案

2.2. gdbinit 的寫法

target extended-remote 192.168.1.136:1234

file monitorall

set args -qws -font wenquanyi

b main

r

-192.168.1.136:1234 —>目標機的ip位址和埠

target 的上的可執行檔名稱可以和host上的不一樣.

target 上可以執行去除符號的程式,而host上除錯帶debug資訊的程式,這樣可以大大減小 target上的程式大小, 這樣需要在host端設定一下target端的執行程式名稱. 用set remote exec-file命令

完整指令碼如下例: gdbinit 檔案

target extended-remote 192.168.1.136:1234

file monitorall_debug

set remote exec-file monitorall

set args -qws -font wenquanyi

b main

r

gdb 的前端可以使用vim, 可參考vim做除錯前端

也可以使用emacs, 前端除錯環境建立請自行baidu.

也可以使用其它前端例如ddd之類的等.

注意對應的gdb除錯程式需要用update-alternatives調整正確.

gdb gdbserver除錯 方式1

目錄 一 gdb gdbserver總體介紹.1 四 gdb gdbserver nfs除錯流程.2 五 如何利用串列埠除錯.3 六 實戰除錯.3 七 linux下安裝gdbserver問題.5 root at91rm9200dk arm cp libthread db 1.0.so libthre...

gdb gdbserver方式進行ARM程式除錯

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

嵌入式gdb gdbserver除錯

在很多情況下,需要對應用程式進行除錯。在 linux 下除錯程式,常用的工具是 gdb。由於嵌入式單板的資源有限,一般不直接在目標機上執行 gdb 進行除錯,而是採取 gdb gdbserver 的方式。gdbserver 在目標機中執行,gdb 則在宿主機上執行。根檔案系 統中已經包含 gdbse...