1. 程式人生 > >vscode中的除錯與編譯

vscode中的除錯與編譯

  • 除錯
    1. 如果要啟動除錯, 需要設定啟動配置檔案–launch.json。選擇除錯環境, vscode將在.vscode目錄下生成一個launch.json的配置檔案。如下圖所示:
      這裡寫圖片描述
      2.編輯launch.json檔案
{
    //${workspaceRoot} the path of the folder opened in VS Code(VSCode中開啟資料夾的路徑)
    //${workspaceRootFolderName} (VSCode中開啟資料夾的路徑, 但不包含"/")
    //${file} the current opened file(當前開啟的檔案)
//${relativeFile} (當前開啟的檔案,相對於workspaceRoot) //${fileBasename} (當前開啟檔案的檔名, 不含副檔名) //${fileDirname} (當前開啟檔案的目錄名) //${fileExtname} (當前開啟檔案的副檔名) "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch",// 配置名稱,將會在啟動配置的下拉選單中顯示 "type": "cppdbg",// 配置型別,這裡只能為cppdbg
"request": "launch",// 請求配置型別,可以為launch(啟動)或attach(附加) "program": "${workspaceFolder}/detect/test/detect_demo",// 將要進行除錯的程式的路徑 "args": ["--rgb_video","/data/data/videos/car1_20170525.mp4"],// 程式除錯時傳遞給程式的命令列引數 "stopAtEntry": false,// 設為true時程式將暫停在程式入口處,一般設定為false "cwd"
: "${workspaceRoot}/detect/test",// 可執行程式的啟動路徑 "environment": [], "externalConsole": true,// 除錯時是否顯示控制檯視窗,一般設定為true顯示控制檯 "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }

3.若出現問題:Unable to start debugging. Failed to initialize debugger terminal.在launch.json中新增如下配置

"pipeTransport": {
    "pipeCwd": "/usr/bin",
    "pipeProgram": "/bin/sh",
    "debuggerPath": "/usr/bin/gdb",
    "pipeArgs": [
        "-c"
    ]
},
  • 除錯中加編譯
    1.生成task.json
    輸入ctrl+p命令,輸入>tasks:configure,如下圖所示
    這裡寫圖片描述
    這裡寫圖片描述
    這裡寫圖片描述
    生成的tasks.json如下圖所示
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "echo",
            "type": "shell",
            "command": "echo Hello"
        }
    ]
}

2.在launch.json的“cwd”後新增"preLaunchTask": "Make detect demo",其中Make detect demo需要與tasks.json中的label一致。

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Make detect demo",//與launch.json的檔案中的preLaunchTask保持一致
            "type": "shell",
            "command": "make -j8",
            //"command": "./build.sh",//此處也可將所要執行的命令寫在shell腳本里支執行
            "options": {
                "cwd": "build"//進入到build資料夾
            },
            "args": [
            ], // 程式除錯時傳遞給程式的命令列引數
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

3.按F5鍵開始除錯,會自動編譯最新的檔案