天天看點

Linux gdb調試(3):VSCode+gdbserver實作圖形化的遠端調試

1、配置步驟

先在VSCode上打開源碼所在檔案夾(或者打開workspace工作區):

Linux gdb調試(3):VSCode+gdbserver實作圖形化的遠端調試

然後點選左側視窗的調試選項或者按下“Ctrl+Shift+D”打開調試功能:

Linux gdb調試(3):VSCode+gdbserver實作圖形化的遠端調試

完成後生成“launch.json”檔案,初始内容如下:

Linux gdb調試(3):VSCode+gdbserver實作圖形化的遠端調試

其中有幾個比較重要的參數(預設不提供的話我們也可以手動添加上去):

  • name:調試的項目名,無所謂啦;
  • program:程式名稱,最好是絕對路徑;
  • args:給main函數傳遞參數;
  • cwd:需要調試的程式的源碼路徑;
  • environment:環境變量的設定;
  • miDebuggerPath:gdb的路徑,搭配gdbserver則使用對于xxx-gdb的路徑;
  • miDebuggerServerAddress:對于遠端調試來說,需要添加該選項,内容就是遠端gdbserver填寫的伺服器位址。

是以接下來修改“launch.json”檔案搭配gdbserver來實作遠端調試,修改後的内容如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 啟動",
            "type": "cppdbg",
            "request": "launch",
            "program": "/home/linrm/work/test/gdb_test/test",
            "args": [],
            "stopAtEntry": false,
            "cwd": "/home/linrm/work/test/gdb_test",
            "miDebuggerPath": "/home/linrm/work/imx6ull/system/gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gdb",
            "miDebuggerServerAddress": "192.168.1.123:1001",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "為 gdb 啟用整齊列印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}
           

注意,這裡有些參數也可以像預設配置一樣使用workspace工作區的路徑,當然前提是使用工作區的方式打開項目。

2、調試方法

2.1 先是在開發闆中啟動gdbserver

2.2 在VSCode上啟動調試

修改“launch.json”檔案,内容可以參考前面的配置;完成後點選“運作(R)-> 啟動調試(S)”或圖中的調試按鈕:

Linux gdb調試(3):VSCode+gdbserver實作圖形化的遠端調試

對于本次測試程式來說,程式故意引入一個修改常量導緻的段錯誤,最終通過調試也能定位出問題的位置:

Linux gdb調試(3):VSCode+gdbserver實作圖形化的遠端調試

繼續閱讀