gdb遠端序列協議

2021-04-24 18:28:49 字數 854 閱讀 7595

首先不知道這個標題翻譯得正不正確,其原文是「gdb remote serial protocol」。這個是gdb在遠端除錯的時候,gdb端和gdbserver端通訊的協議。最近想看看arm linux,就想順便研究下這個協議。

關於這個協議,有乙個文件,請見:

-------------------------翻譯開始-----------------------------

1.概述

在有些情況下,你需要知道了解這個協議。比如,你的目標平台只有乙個串列埠,那麼,你肯定希望你的程式在識別到乙個gdb的資料報的時候能夠做些特殊處理。

在下面的例子中, -> 和 <- 分別用來表示傳送和接受的資料。

所有的gdb命令和響應(other than acknowledgments)以資料報的形式傳送。資料報以 '$'字元開頭,接著是實際的資料,然後以'#'字元加上連位數的校驗和結尾。

$packet-data

#checksum

兩位數校驗和的計算方法是,對'$'和'#'間的所有字元求和,然後再對256求模(8位無符號校驗和)。

協議實現需要注意的是,對於gdb5.0之前的版本,該協議還包括乙個可選的兩位數序列號, sequence-id:

$

sequence-id

:packet-data

#checksum

《未完》

-------------------------翻譯結束-----------------------------

GDB遠端除錯

3.建立配置檔案 編譯 gdb允許把編譯配置和編譯結果放到任意的目錄,因此可以在gdb目錄之外建立乙個專門存放編譯結果的目錄。cd opt mkdir p arm gdb build cd arm gdb build opt gdb 6.6 configure target arm linux pr...

遠端gdb除錯

在主機上準備目標機的gdb,例如目標機為arm,則準備arm linux gdb 目標機上需要安裝gdbserver 在目標機上用gdbserver執行程式 gdbserver 127.0.0.1 2345 test 注意,待除錯的程式編譯時需要加上 g 引數。在主機上發起鏈結和除錯 進入gdb g...

gdb 遠端除錯

1.首先把在宿主機上 編譯 arm fsl linux gnueabi gcc 主機的ip為192.168.1.202 目標板的ip為192.168.1.136 2.然後把目錄通過nfs 載入到目標板上 mount t nfs 192.168.1.202 home duan nfs mnt nfs ...