本篇博客以一个简单的hello world程序,介绍在vscode中调试C++代码的配置过程。

1. 安装编译器

vscode是一个轻量的代码编辑器,并不具备代码编译功能,代码编译需要交给编译器完成。linux下最常用的编译器是gcc,通过如下命令安装:

sudo apt-get install build-essential

安装成功之后,在终端中执行gcc --version或者g++ --version,可以看到编译器的版本信息,说明安装成功。

2. 安装必要的插件

在vscode中编写C++代码,C/C++插件是必不可少的。打开vscode,点击左边侧边栏最下面的正方形图标,在搜索框里输入c++,安装插件。

3. 编写代码

hello world程序,略。

4. 配置task

在task里添加编译命令,从而执行编译操作。步骤如下:

按住ctrl+shift+P,打开命令面板;

选择Configure Tasks...,选择Create tasks.json file from templates,之后会看到一系列task模板;

选择others,创建一个task,下面是一个task的示例:

{

// See https://go.microsoft.com/fwlink/?LinkId=733558

// for the documentation about the tasks.json format

"version": "2.0.0",

"tasks": [

{

"label": "build hello world", // task的名字

"type": "shell",

"command": "g++", //编译命令

"args": [ //编译参数列表

"main.cpp",

"-o",

"main.out"

]

}

]

}

上面的command是我们的编译命令,args是编译参数列表,合在一起,其实就是我们手动编译时的命令。

g++ main.cpp -o main.out

5. 配置launch.json

把debug的内容配置在launch.json,这样我们就可以使用断点调试了。

点击侧边栏的debug按钮,就是那只虫子图标;

在上面的debug栏目里,点击齿轮图标;

在下拉菜单中选择 C++ (GDB/LLDB),这时会在.vscode文件夹下创建一个launch.json文件,用来配置debug;下面是launch.json文件的一个示例:

{

// 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": "debug hello world", //名称

"type": "cppdbg",

"request": "launch",

"program": "${workspaceFolder}/main.out", //当前目录下编译后的可执行文件

"args": [],

"stopAtEntry": false,

"cwd": "${workspaceFolder}", //表示当前目录

"environment": [],

"externalConsole": false, // 在vscode自带的终端中运行,不打开外部终端

"MIMode": "gdb", //用gdb来debug

"setupCommands": [

{

"description": "Enable pretty-printing for gdb",

"text": "-enable-pretty-printing",

"ignoreFailures": true

}

],

"preLaunchTask": "build hello world" //在执行debug hello world前,先执行build hello world这个task,看第4节

}

]

}

6. 结束

至此,配置完成,按F5可以编译和调试代码,vscode自带终端中会打印hello world字符串。在程序中添加断点,调试时也会在断点处中断。

lldb 调试php,linux系统下如何在vscode中调试C++代码相关推荐

  1. windows查看linux文件中文,Linux 系统下无法查看Windows 中创建的中文文件名

    标  题: Linux 系统下无法查看Windows 中创建的中文文件名 我是Linux初学者,在网上搜索了很久,经过多次尝试仍然无法解决问题,只好在这里发贴请教了,还望各位高手指点一下. 问题描述: ...

  2. linux系统下安装pfam数据库中hmmer软件以及python3非root用户的安装

    linux系统下安装pfam数据库中hmmer软件以及python3非root用户的安装 http://hmmer.org/从该链接下载源,其中有Userguide.pdf 下载,解压缩并切换目录 之 ...

  3. 在Linux系统下安装vmwareworkstation(解决中途中所有问题合集)

    为了兼容,建议安装vmware workstation 15 (en) 百度网盘: 链接: https://pan.baidu.com/s/14_q0aS5b52EpXBqhTcZO0w 密码: 66 ...

  4. Linux系统下sys/stat.h中的stat/fstat/l_stat——C语言

    stat/fstat/l_stat #include <sys/stat.h> 功能:用来获取文件属性,返回值:成功返回0,失败返回-1 int stat(const char *path ...

  5. linux中查找某一个字符串,Linux系统下,在文件中查找某个字符串

    android获取手机信息大全 IMEI号,IESI号,手机型号: private void getInfo() { TelephonyManager mTm = (TelephonyManager) ...

  6. 如何在VScode 中 调试 ts 文件 Unit test

    最近在使用VScode 调试 mocha 写的 UT, 遇到一个问题,executor.js文件中require了某个ts写的文件代码,跑ut的时候回报错说无法找到. 解决方式是在参数中加入 &quo ...

  7. vscode写python爬虫_如何在vscode中调试python scrapy爬虫

    HDOJ 2393. Higher Math Higher Math Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/327 ...

  8. 如何在VSCode中运行js代码

    安装Node.js 不会安装的请直接查看我的博客五分钟教你搞定在HbuilderX上搭建Node.js环境 注意:只需要在cmd里敲node -v出现版本信息,就可以下一步操作了 在VSCode中下载 ...

  9. linux如何禁用ntp服务,Linux系统下NTP服务的配置注意要点

    在Linux系统下NTP的标准配置中,许多关于同步的方式不同,注意以下要点: 如果不想让其它任何服务器访问本机的NTP服务:此配置也将造成本地的NTP无法访问外部的NTP服务: If you want ...

最新文章

  1. java随机动态分组_Java将一组数随机分组
  2. 图像傅里叶变换-不错
  3. 从 Dropdown 的 React 实现中学习到的
  4. 《Linux设备驱动程序》学习2—高级字符设备驱动ioctl
  5. 基于nginx-rtmp实现电视回看业务
  6. c语言程序输入n个数字排序,输入n个数字然后进行排序,用C语言编写。注意是n个数啊,不是确定的个数。...
  7. 凡事想开,心情不坏~
  8. 支持向量机——Large Margin Classifier
  9. js动态创建元素和删除
  10. HarmonyOS 实战——服务卡片初探索
  11. 小米8 android9手势,当小米8SE遇到安卓9.0,体验提升一个等级!
  12. 零碎技术栈01_UML画图分析
  13. 超分辨网络SRCNN的Pytorch实现
  14. PFC离散元软件快捷操作方式
  15. ecshop微信登录php代码,Ecshop实现微信第三方授权扫码登录
  16. Python 之 类 (Tom猫)
  17. 使用vue做一个“淘宝“项目——2
  18. 什么是iso认证周期,iso审核是一年一次吗?
  19. Windows11更新后打不开Edge浏览器解决办法
  20. animation和transition的区别及使用

热门文章

  1. ngRx 官方示例分析 - 4.pages
  2. TCP/IP 原理--链路层
  3. 每天一个JavaScript实例-canvas绘图
  4. hasLayout属性
  5. VisualC++2010系列课程
  6. 基于Google Reader发展起来的个性化推荐系统之三大问题
  7. SqlServer自定义排序
  8. [Oracle][Corruption]究竟哪些检查影响到 V$DATABASE_BLOCK_CORRUPTION
  9. 前端每周清单第 30 期:WebVR 指南,Vue 代码分割范式,理想的 React 架构特性
  10. MySQL存储引擎MyISAM和 InnoDB