手把手教你使用VSCode + Gdb + Gdbserver調試ARM程序
嵌入式軟件開發(fā)中,最常用的調試方法就是:log打印調試法及在線調試。
開發(fā)STM32時,我們有IDE可以用,IDE中已經(jīng)集成有調試器,配合仿真器使用起來很方便。而在Linux應用程序的開發(fā)中,常常直接在命令行使用gdb進行調試,或者可以使用VSCode+gdb進行調試。
而在嵌入式Linux中,我們如何對開發(fā)板上的arm程序進行調試呢?
我們可以使用VSCode+gdb+gdbserver來調試我們arm開發(fā)板上的arm程序。下面簡單介紹一下使用方法,前提是開發(fā)板與PC可以進行無線/有線通信。相關文章:一次關于WiFi 驅動移植的總結復盤
1、準備arm格式的gdb及gdbserver工具
一般交叉編譯工具鏈里都包含有,如果沒有則需要自己下載gdb源碼進行交叉編譯,gdb下載源碼下載鏈接:
- http://www.gnu.org/software/gdb/download/
這里我使用的是交叉編譯工具鏈里的gdb及gdbserver,如:
2、創(chuàng)建launch.json文件并修改
我們需要創(chuàng)建vscode的launch.json文件并進行一些修改:
其中需要修改"program",這是我們需要調試的程序,即我們交叉編譯好的程序。還需要添加如下兩個鍵值對:
- "miDebuggerPath:"/opt/rv1126/bin/arm-linux-gnueabihf-gdb"
- "miDebuggerServerAddress":"192.168.3.12:9001"
其中,miDebuggerPath表示的是arm格式gdb的路徑;miDebuggerServerAddress表示的是我們server端的地址,如:192.168.3.12為開發(fā)板的ip,9001為端口號,可自行設置,其范圍為:0~65536,0~1023 的端口一般由系統(tǒng)分配給特定的服務程序。
3、把gdbserver傳到開發(fā)板上
我們需要交叉編譯器路徑下的gdbserver傳到開發(fā)板上,如我這里放到開發(fā)板的/usr/bin路徑下:
4、啟動gdbserver
我們首先需要啟動開發(fā)板上的gdbserver,pc端才能連接進行調試,格式為:
- gdbserver 開發(fā)板ip:端口號 要調試的程序
如:
5、啟動vscode的gdb進行調試
最后,啟動vscode的gdb即可進行調試。如:
本文轉載自微信公眾號「嵌入式大雜燴」,可以通過以下二維碼關注。轉載本文請聯(lián)系嵌入式大雜燴公眾號。