Linux环境使用VSCode调试简单C++代码

这篇具有很好参考价值的文章主要介绍了Linux环境使用VSCode调试简单C++代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文将通过演示一个简单C++代码的编译调试过程,介绍在VSCode中如何使用Linux环境下的GCC C++编译器(g++)和GDB 调试器(gdb)。

关于GCC、g++、gcc、gdb,这里不做详细介绍,如果感兴趣可以参考另一篇文章:详解C/C++代码的预处理、编译、汇编、链接全过程,里面有详细的解释。

看懂这篇文章的内容,只需要知道g++用来编译C++代码,gdb用来调试C++代码即可。

示例代码内容如下:

// hello.cpp
#include <iostream>
using namespace std;
int main(){
	cout << "Hello, VSCode!" << endl;
    return 0;
}

1. 终端命令行方式编译、调试简单C++代码

如果不考虑VSCode编辑器,在Linux环境中编译调试一个简单的C++代码可以只通过命令行实现,具体过程分为两步:

  1. 第一步:将*.cpp源代码文件通过g++编译器生成一个可调试的可执行二进制文件:
g++ -g hello.cpp -o hello

指令解析:

  • 为了能够使用gdb调试,需要在编译时加上-g
  • hello.cpp:待编译的源文件名
  • -o hello:指定生成的可执行文件名为 hello
# 运行 hello 的结果:
./hello
Hello, VSCode!
  1. 第二步:调用gdb调试器对可执行文件进行调试:
gdb hello

调试的过程如下:
Linux环境使用VSCode调试简单C++代码

  • 如果希望在VSCode中编译调试C++代码,所要做的就是配置完成上面的两步。

2. 通过VSCode对C++代码进行编译、调试

主要参考:

  • VSCode官方教程: Using C++ on Linux in VS Code
  • 详解Linux下使用vscode编译运行和调试C/C++

2.1 前提条件

  1. VSCode中的"C/C++插件"已安装(直接在VSCode扩展商店搜索"C++"即可)

Linux环境使用VSCode调试简单C++代码

  1. 确保g++编译器gdb调试器已安装。可以在终端查看g++是否已安装
g++ -v

如果能输出版本信息,则已安装。

gdb通过以下命令安装:

sudo apt-get update
sudo apt-get install build-essential gdb

2.2 配置tasks.json

在VSCode中打开示例代码文件夹,

Linux环境使用VSCode调试简单C++代码

  1. 在VSCode的主菜单中,选择 Terminal>Configure Default Build Task
  2. 出现一个下拉菜单,显示 C++ 编译器的各种预定义编译任务。选择 C/C++: g++ build active file(如果配置了中文,会显示 “C/C++: g++ 生成活动文件”
  3. 选择后,vscode会自动生成一个.vscode文件夹和 tasks.json文件,此时的代码文件夹结构如下:
    Linux环境使用VSCode调试简单C++代码
    tasks.json的内容如下:
{
	"version": "2.0.0",
	"tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ 生成活动文件",
            "command": "/usr/bin/g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "编译器: /usr/bin/g++"
        }
    ]
}

tasks.json的作用是告诉VSCode如何编译程序

在本文中是希望调用g++编译器从cpp源代码创建一个可执行文件,这样就完成了第1节中所说的编译调试第一步。

从tasks.json的"command""args"可以看出,其实就是执行了以下命令:

/usr/bin/g++ -g ${file} -o ${fileDirname}/${fileBasenameNoExtension}

其中,

  • ${file}:当前活动文件(就是vscode当前查看的文件),这里是hello.cpp
  • ${fileDirname}/${fileBasenameNoExtension}:在这里就是当前目录下的hello
  • 有关VSCode中的变量名,可以参考:VSCode Variables Reference

2.3 执行编译

在2.2节配置完成 tasks.json 文件后,VSCode就知道应该用g++编译器对cpp文件进行编译,下面执行编译即可:

  1. 回到活动文件hello.cpp(很重要,不然 ${file} 和 ${fileDirname}这些变量都会错)
  2. 快捷键ctrl+shift+B或从菜单中选择运行:Terminal -> Run Build Task,即可执行 tasks.json中指定的编译过程
  3. 编译任务完成后,会出现终端提示,对于成功的g++编译,输出如下:
    Linux环境使用VSCode调试简单C++代码
    这一步完成后,在代码目录下就出现了一个可执行文件hello
  4. (可选) 个性化修改 tasks.json
    可以通过修改 tasks.json满足一些特定需求,比如将"${file}"替换“${workspaceFolder}/*.cpp”来构建多个 C++ 文件; 将“${fileDirname} /${fileBasenameNoExtension}” 替换为硬编码文件名(如“hello.out”)来修改输出文件名

2.4 调试hello.cpp

完成上述的编译配置后,就可以对hello.cpp进行调试了:

  1. 回到hello.cpp,确保其是活动文件(active file)
  2. 设置一个断点
  3. 从右上角的按钮中,选择 Debug C/C++ file
    Linux环境使用VSCode调试简单C++代码
  4. 然后就开启调试过程了,可以单步运行、添加监视等等。

2.5 个性化配置launch.json

按照2.4节的过程,已经可以简单调试一个.cpp代码,但是在某些情况下,可能希望自定义调试配置,比如指定要在运行时传递给程序的命令参数。这种情况下我们可以在launch.json中定义自定义调试配置。

下面是配置调试过程的步骤:

  1. 从主菜单中,选择 Run > Add Configuration…,将会生成一个launch.json文件
  2. launch.json文件右下角点击 “添加配置”,选择 “(gbd)启动”,文件内容参考如下:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "miDebuggerPath": "/usr/bin/gdb",
            "preLaunchTask": "C/C++: g++ 生成活动文件"
        }
    ]
}

这里launch.json的作用就是告诉VSCode如何调用gdb调试器。

如果想要在调试/运行程序时添加参数,只需要把参数添加在"args"选项中即可。

2.6 总结

在VSCode中编译、调试一个简单的.cpp文件,所需要做的就是:

  1. 在 tasks.json 中调用 g++ 生成一个可执行二进制文件
  2. 在 launch.json 中调用 gdb 对生成的可执行文件进行调试

2.7 复用C++配置

上面的过程已经完成了在VSCode中调试Linux环境下的C++代码的配置,但只适用于当前工作空间。如果想要在其他的工程文件夹下复用这种配置,只需要把tasks.jsonlaunch.json文件复制到新文件夹下的.vscode目录下,然后根据需要改变对应的源文件和可执行文件的名称即可。文章来源地址https://www.toymoban.com/news/detail-441961.html

3.参考教程

  1. 详解Linux下使用vscode编译运行和调试C/C++
  2. VSCode官方教程: Using C++ on Linux in VS Code
  3. VSCode Variables Reference

到了这里,关于Linux环境使用VSCode调试简单C++代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux | vscode | makefile | c++编译和调试

    简单介绍环境: vscode 、centos、 gcc、g++、makefile 简单来说就是,写好项目然后再自己写makefile脚本实现编译。所以看这篇博客的用户需要了解gcc编译的一些常用命令以及makefile语法。在网上看了很多教程,以及官网也看了很多次,最后自己一点多一点摸索,有的些许收获。 首

    2024年02月15日
    浏览(26)
  • Visual Studio Code(VSCode) 编辑/编译/调试 C++ 代码

    最近想要切换编辑工具,之前工作中使用过 Source Insight,Eclipse,CLion 来写 C++ 代码。目前来说 Source Insight 已经非常古老,只有编写代码还说得过去,编译、调试方面都不行。Eclipse 使用的时间最长,相对来说也比较好用,但是对于 C++11 之后的 C++ 代码实际上支持的并不友好。

    2024年02月03日
    浏览(149)
  • VScode在远程服务器进行python代码的调试【conda环境】

    其中vscode中需要安装扩展:remote ssh 装完扩展后本地多个图标,如下图所示: 当然,初始状态不是这样(因为我已经配置好了哈),你需要点击“+”,然后在框框中输入用户名和服务器IP地址 进行相应的配置 ! 点击上面的设置按钮可以进行.ssh/config的配置文件编辑,点击+好来

    2024年02月13日
    浏览(33)
  • 解决MAC中vscode调试C++代码无法处理输入的问题

    写在前面的话:很久没有使用C/C++进行编程了,这次在MAC电脑的vscode中对C/C++代码进行调试时,发现运行到scanf、cin等输入语句时无法输入,参考了网上一些教程,发现有些繁琐或是难以解决我的问题。因此以本文记录最终的解决方案,一来为了记录以便下次遇到时进行解决,

    2024年02月05日
    浏览(35)
  • 【VSCode】VScode 配置 Linux 驱动环境(简单版)

    在开始编写驱动之前,我们需要保证良好的编码环境,这里编写代码所使用的编辑器是VScode,如果进行环境配置,可能会提示很多错误,比如头文件找不到、内核函数的定义无法跳转等等。 VScode 在这里只作为编辑器使用,配置的 是编辑环境 ,而 不是编译环境 。 目录 一、

    2024年02月08日
    浏览(50)
  • VSCode使用 - 搭建python运行调试环境

    VSCode是一个优秀的编辑工具,适合代码阅读,代码编辑,甚至配置好之后,可以编译与调试代码。 为了方便编辑,运行python程序,本文就聊聊如何将VSCode搭建为一个python的IDE吧,具备运行与调试python程序的能力。 首先,安装python程序,这样才能进行python开发,我这里安装了

    2024年02月12日
    浏览(60)
  • 【Linux驱动】VScode 环境简单配置

    在开始编写驱动之前,我们需要保证良好的编码环境,这里编写代码所使用的编辑器是VScode,如果进行环境配置,可能会提示很多错误,比如头文件找不到、内核函数的定义无法跳转等等。 VScode 在这里只作为编辑器使用,配置的 是编辑环境 ,而 不是编译环境 。 目录 一、

    2024年02月14日
    浏览(36)
  • 基于VSCode的Linux内核调试环境搭建以及start_kernel跟踪分析

    参考ppt的步骤: 准备工作:1-5 ,配置vscode环境:6 ,跟踪分析:7。 目录 1.安装开发工具  2.下载内核源码  3.配置内核选项 4.编译和运行内核 5.制作内存根文件系统 *gdb调试(可跳过)  7.配置VSCode调试Linux内核  7.跟踪分析 下载出现了“Axel -n 20 :太多重定向”的问题,原因是

    2023年04月17日
    浏览(53)
  • js逆向补环境-调试工具vscode与nodejs使用之无环境联调

    一、啊哈 js逆向补环境时,经常会调试js,调试js依赖的环境可以选择如下两个nodejs和vscode;通过这篇文章简单了解下安装以及简单的使用 以下来自我以前写的两篇文章旧文章合集内容基本一致,只是统一更新下汇总到这篇文章了,所以也可以移步查看 nodejs在windows和linux下安

    2024年02月14日
    浏览(31)
  • 使用vscode 连接服务器 进行深度学习代码调试

    博主本来在Win上已经配好环境了,但是在跑代码的过程中,因为tensor拼接得太大了,导致笔记本内存不足,因此需要到服务器上跑 为什么选择vscode? 如果直接用xshell连接服务器,在命令行运行py文件,不是很直观,也不能debug,还不能直接输出图片。 pycharm连接服务器好像要

    2024年02月22日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包