ubuntu下VS code如何調試C++代碼


最近開始使用Vs codel,真的方便,可以和git結合。下面總結一下如何調試程序,

我寫了一個實例程序(不重要)

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
    fstream iofile("test.txt");
    vector<string> strs(20);
    int i=0;
    if(!iofile){
        cerr<<"open file failed"<<endl;
    }else{
        while(iofile>>strs[i++]);
    }
    for(int j=0;j<i-1;j++)
    {
        cout<<strs[j]<<endl;
    }
//    cout<<endl;
    cout<<"after sort"<<endl;
    cout<<*(strs.begin())<<endl;
    sort(strs.begin(),strs.begin()+i-1);
    cout<<"i:"<<i<<" "<<strs[1]<<endl;
    for(int j=0;j<i;j++)
        {
                cout<<strs[j]<<" ";
        }
    cout<<endl;
    return 0;
}

這個時候,我們按F5,發現不能運行,它提示需要一個Launch.json文件,OK,這是一個啟動文件,我們來配置它。

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build",
            "preLaunchTask": "build",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

注意,這里需要修改的部分主要是program那一行,僅需修改為自己編譯后產生的文件名,不如g++ -g 1.7.cpp -o build,所以這里我就取了build這個名字。

還有,就是要添加preLaunchTask這一行,名字與下面的task要對應。

這里,它還需要一個task.json文件,配置如下,

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "g++",
            "args": [
                "-g",
                "${workspaceFolder}/chapter01/1.7.cpp",
                "-o",
                "build"
            ]
        }
    ]
}

大家可以看到,這里只需要將label的值要與上面的preLaunchTask相對應,其他的就是命令行部分,完成這個文件后,我們ctrl+shift+b,這是會執行task。

之后,我們打開main文件,設置斷點,F5即可開始調試代碼。

 

關於Launch.json:

官方是這樣說的:However, for most debugging scenarios, creating a launch configuration file is beneficial because it allows you to configure and save debugging setup details. VS Code keeps debugging configuration information in a launch.json file located in a .vscode folder in your workspace (project root folder) or in your user settings or workspace settings.但是,對於大多數調試方案,創建啟動配置文件是有益的,因為它允許您配置和保存調試設置詳細信息。 VS Code將配置信息保存在位於工作區(項目根文件夾)的.vscode文件夾或用戶設置或工作區設置中的launch.json文件中。

個人感覺可能是項目比較簡單所以看不來它的好處。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM