gdbserver連線Ubuntu除錯程式(使用串列埠)

一個不太聰明的程式設計師發表於2020-12-17

最近在Linux平臺開發基於awtk的介面程式,由於開發板沒有gdb,只能使用gdbserver,於是將環境搭建的方法記錄於此,大家一起分享

相應的文件下載地址:
https://download.csdn.net/download/LK_whq/13709634

Gdbserver搭建:

1.首先配置虛擬機器:

在這裡插入圖片描述在這裡插入圖片描述
選擇合適的埠。

2.開啟虛擬機器配置串列埠:

把usb轉串列埠從主機斷開連線,Ubuntu中竟然是直接包括PL2303(我用的usb轉串列埠晶片)驅動的,首先可以先來看一下usb情況。命令如下:

root@ubuntu:~# lsusb

在這裡插入圖片描述

檢視usb資訊。

配置波特率:

root@ubuntu:~# stty -F /dev/ttySUB0 38400 parodd

該命令自行百度檢視詳細,本人也未從瞭解

3.板子的配置:

連線板子的第二個串列埠ttymxc1
設定波特率:

root@awtk:~# stty -F /dev/ttymxc1 38400 parodd

在可執行檔案的目錄下執行如下命令:

root@awtk:~# gdbserver --remote-debug /dev/ttymxc1 app-demo

執行上述命令後就不用再關心板子輸出了,上面命令執行後會一直等待主機連線。

4.連線主機和板子

下面用虛擬機器上的gdb連線板子上了gdbserver:
執行命令:

root@ubuntu:~# arm-linux-gnueabihf-gdb -b 38400 app-demo

執行後再gdb下輸入target remote /dev/ttyUSB0,等待成功連線板子

在這裡插入圖片描述
出現上面資訊後便是連線成功。

使用gdb命令 b打斷點,然後輸入c命令即可執行需要除錯的app-demo程式了,再繼續就是使用gdb的命令進行除錯,這裡不再贅述自行百度即可。

問題:(該類問題可以忽略,這是gdb沒有找到共享庫的原因,可以忽略)
Use the “info sharedlibrary” command to see the complete listing.
Do you need “set solib-search-path” or “set sysroot”?

相關文章