CLion遠端除錯嵌入式開發板程式

1. 目的

有時候我們的程式在板端執行崩潰,或不符合預期或者單純想要單步除錯去檢視一些變數。很多時候我們不得不加很多列印語句或用gdb 除錯。不夠直觀和方便。clion可以說是現在linux平臺最好的C++ IDE了,clion還提供了remote gdb server的功能,可以讓我們實現在開發機上打斷點單步除錯開發板上的程式,在滿足使用條件的情況

下,還是非常方便的。

2. 前提條件

板端:具有gdb-server

主機:能夠編譯目標板的程式

3. CLion設定

3.1 設定一個Deployment

(其實官方步驟裡沒寫這步,但實踐看設定一下非常方便後面得使用)



其中SSh configuration就是板子的ssh連線配置。

再設定一下mappings中的Deployment path, 也就是本地路徑同步到板子的哪個路徑:



還可以設定一下Excluded Paths, 也就是哪些路徑不同步到板子,因為板子只是跑下程式,所以程式碼、其他編譯目錄等都可以設定不傳。



點選完成,第一步配置就OK了。

3.2 上傳需要的目錄到目標板子

右鍵想要同步的目錄或檔案,Deployment->UploadXXX(對應板子deployment)即可。



也可以設定為自動同步,每次有修改,就會自動同步到板子:



如果有檔案上傳,會有日誌:

3.3 設定一個Remote GDB Server

Run->Edit Configures:



要設定上傳路徑,直接設定為我們在3.1中設定的目錄即可,

設定GDB Server的啟動引數, 格式為 :埠號 程式路徑 程式啟動引數。 如上圖 ":1234 xxx -h 192.168.17.82"

如果程式需要依賴板子其他路徑的庫,在Environment 中設定。

至此,設定完成。就可以像本地一樣打斷點debug了。



總結

用這種遠端debug的方式,對於不習慣手動gdb在板子上除錯的開發者還是挺方便的,也比print列印去除錯更方便。CLion的Remote debug其實是依賴於Remote GDB Server, 並不是其獨有的功能,用其他編輯器如VS Code也有外掛可以實現類似的功能。

PS: Jet Brains yyds, 支援正版(手動狗頭)