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文件中。

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

原文地址:https://www.cnblogs.com/JsonZhangAA/p/9750282.html

时间: 2024-08-29 23:36:38

ubuntu下VS code如何调试C++代码的相关文章

ubuntu下codeblocks编译器更改调试终端

最近用ubuntu下的codeblocks敲代码,发现不顺的是调试终端弹出的黑框不能进行复制粘贴操作~,试各种方法不管用~囧~~ 最后百度一下,果然找到答案: 转载自网络: ubuntu下的codeblocks看起来果然是比windows下的稍微高档一点 建立控制台程序生成完毕后,发现自带的调试终端xterm不能进行复制粘贴操作(反正我是没弄出来,不知道有没有其他方法),在网上找了找,找到了个更换调试终端的方法,就是把ubuntu下的gnome-terminal  用作调试终端,修改后就行了.

ubuntu下使用code::blocks编译运行一个简单的gtk+2.0项目

在具体的操作之前,首先需要安装一些必要的软件.ubuntu下默认安装了gcc,不过缺少必要的Header file,可以在命令行中输入下面的指令安装build-essential套件:sudo apt-get install build-essential使用GTK+2.0需要安装GTK开发套件,在命令行中输入下面的指令安装GTK开发套件libgtk2.0-dev:sudo apt-get install libgtk2.0-dev安装完成后,可以使用pkg-config查看一下GTK的相关编译

ubuntu 下安装git 并上传代码至github

参考博客 http://www.xitongzhijia.net/xtjc/20150320/42297.html http://blog.chinaunix.net/uid-17188120-id-4650534.html 1.Ubuntu下安装Git Ubuntu14.04 LTS默认是已经安装Git的,可以使用 git –version 测试是否安装. 如果没有安装,使用命令: sudo apt-get install git git-core 安装git 2.ssh认证 在Ubuntu下

Ubuntu下VS Code 字体设置

Ubuntu下比较好看的字体有: Courier NewSource Code ProWenQuanYi Micro HeiWenQuanYi Micro Hei MonoUbuntuDroid Sans Mono 如下是Ubuntu下VSCode默认字体设置 "'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'" 可以把如上字体替换成: "'WenQuanYi Micro Hei', 'WenQu

Ubuntu 下配置code::blocks

提前上一个月下学期的课.要学习linux,于是硬盘装了ubuntu14.10 . 又想刷刷题,就装code::blocks 了.但是缩进搞得我很不习惯. 各种搜索之后找到了解决的办法.我是直接在软件中心安装的code::blocks 然后安装一些插件,终端输入 sudo apt-get install codeblocks-contrib 同意之后安装完成,缩进什么就搞定了.就同windows下一样了. 字体我一直使用的consolas 下载安装完字体就可以在setting/editor/gen

在ubuntu下使用eclipse来调试ARM程序

该程序为外部Makefile project,导入到eclipse中来进行编译,之后使用Jlink来进行调试. 这个是因为你在编译的时候没有加-g这个标志,导致没有生成调试文件. 让你指定一个源文件. 正常调试过程中.

Ubuntu下用PyCharm 运行调试 Odoo 8.0 可能存在的问题

实现的操作步骤,请移步http://shine-it.net/index.php?topic=16603.0 或者 http://www.mindissoftware.com/2014/09/11/Run-Odoo-in-PyCharm-Ubuntu/ 上面链接的文章写的很好,但是有一点需要调整. 在第8步配置PyCharm时,如果点击菜单的run,进入编辑配置Edit Configurations选项中, Script:的部分,不应该指向python2.7位置,这里应该填写的是openerp-

64位ubuntu下用code::blocks IDE配置opengl开发环境

http://jingyan.baidu.com/article/c74d60007d104f0f6b595d6d.html 样例程序: #include <GL/glut.h> #include <stdlib.h> void init(); void display(); int main(int argc, char* argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE

注重用于调试的代码

正常情况下,我们用以调试的代码,大概都会加上一个编译条件,这样避免在生产环境中产生不必要的性能损耗等 还有一种情况,就是我们也需要将一部分类似的代码,在正式发布版本前,在Release下进行使用,通常情况下是以特定的功能或者log的方式进行输出 这些代码也许对于程序本身是没有用的,但是却能很快的帮助我们定位问题所在. 比如,大量数据中的一个数据异常,如果在debug下定位可能会非常的慢,如果有了log或者有了特定功能,让我们能够通过可视化的形式去定位数据异常的位置,那么调试就会事半功倍 再比如,