zoukankan      html  css  js  c++  java
  • 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文件中。

    个人感觉可能是项目比较简单所以看不来它的好处。

  • 相关阅读:
    4.Eclipse下的Hadoop开发实践
    6.命令行编译打包运行五个MapReduce程序
    1.Hadoop初步环境搭建(ssh无密码通信)
    webkit中对incomplete type指针的处理技巧
    Windows平台编译Webkit
    利用Webkit抓取动态网页和链接
    用C#实现网络爬虫(一)
    C#中delegate对象Equals方法简析
    Webkit客户端进程解析
    用C#实现网络爬虫(二)
  • 原文地址:https://www.cnblogs.com/JsonZhangAA/p/9750282.html
Copyright © 2011-2022 走看看