clion+gdbserver遠程調試
因為嵌入式開發板上沒有ide,自己又不會在終端中使用gdb調試。不過現在的ide可以gdbserver來遠程調試開發板上的程序,我個人很喜歡使用clion,記錄一下clion+gdbserver遠程調試。
依賴環境
嵌入式開發板:
- gdbserver(這個是必須要安裝)
- open-ssh(如果是使用clion的話這個必須要安裝,如果用vscode這個也不需要安裝)
- rsync(如果單純只是調試的話,可以不需要,安裝了這個可以自動上傳可執行程序)
pc:
- clion
- 交叉編譯器
- cmake
- docker(docker是用來方便自己在開發板上安裝open-ssh的)
注意事項
如果想要調試的時候不出現亂跳以及變量信息的查看需要注意:
- cmakelist中需要添加 add_definitions("-g”) 為了保留調試信息
- cmakelist 關閉編譯優化 即將 -O3 優化 替換成 -O0 (使用ide遠程調試的時候改好,正式發布的時候再改回來即可)
clion 配置 遠程調試環境
- 點擊 Run 再點擊 Edit Configurations
- 點擊 + 新增一個 Remote GDB Server 配置
- 配置相關設置,下面是我自己的配置
說明:
- Target: 構建的目標
- Execute: 執行程序
- Credentials: 與開發板連接的憑證(旁邊的設置按鈕用來設置ssh連接)
- Upload Execute: 選擇上傳程序的方式(clion會將pc上編譯好的程序上傳到開發板,如果開發板上沒有rsync 則自己手動上傳)
- Upload Path: 上傳程序的路徑(這里的路徑指的是開發板上的路徑,如果是自己手動上傳,就改成自己手動上傳的路徑)
- GDB Server args: gdbserver命令的參數(主要 ip(ip不填則是默認開發板ip)+端口號+可執行程序+程序參數)
舉例如下所示
192.168.53.53:1234 /root/client /userdata/test_demo/model.bin /userdata/test_demo/image
- 開發板環境變量的設置
有時候可執行程序還鏈接一些庫,如果使用gdbserver調試會出現找不到該庫,這個時候可以在高級選項中修改 Environment Variables
點擊+新增一個環境變量(多個環境變量路徑用:隔開)
舉例如下:
/userdata/cpp_test:/userdata/work/lib/:/userdata/opencv/lib/
最后點擊OK保存所有的設置。
5. 遠程調試
在clion的右上角可以選擇遠程調試和本地調試(帶一個像蟲標記的就是剛才配置好的gdbserver調試,如果不確定可以點擊 Edit Configurations...來查看具體配置)
選擇遠程調試 然后點擊調試(就是那個像蟲一樣的按鈕)
最后就是享受 IDE調試的愉悅。