前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux下使用VSCode配置C++调试环境

Linux下使用VSCode配置C++调试环境

作者头像
hotarugali
发布2022-08-30 14:17:56
7.6K0
发布2022-08-30 14:17:56
举报
文章被收录于专栏:hotarugaliの技术分享

1. 简介

最近我意识到,调试是一个非常有用的手段。我记得我们当初学习 C++ 语言时,都是使用一个 IDE(比如 CodeBlocks、Dev-C++) 来进行编程和调试;然而随着学习的深入,我发现很多 Debug 工作直接用 printf 就能完成,还是自己接触的工作太少太简单,于是就没太学习调试这方面的知识;直到我开始尝试阅读一个比较大的项目源码。

一个大的项目源码,往往包含一堆的源代码、头文件、配置文件、脚本文件,它们往往又都是通过 Makefile 文件来进行组织维护的。虽然 Makefile 有写明编译的目标和其对应的依赖,但对于大项目来说,错综复杂的依赖关系即使去认真阅读 Makefile 文件也不是那么容易理清,更何况大项目的 Makefile 文件往往为了书写方便进行了大量封装,阅读起来实在困难。

而这时,调试的作用就体现出来了。调试不仅仅可以用来 Debug,我觉得更重要的是它能帮你理清一个程序它是从何而始、至何而终以及它整个执行路线是什么。这便是我这篇文章为什么要介绍配置调试环境的原因。

2. 配置

要让 VSCode 具备 C++ 的调试工能,首先需要安装 MicroSoft 官方的 C++ 工具插件,直接在扩展插件中搜索 C/C++ 即可找到。安装完后,需要进一步进行配置才能使用:

首先用 VSCode 打开你要调试的项目目录,然后可以看到左侧栏出现一个调试按键,点击一下会弹出如下提示:

这是告诉你目前没有任何的配置文件来供编译调试,这里点击 Create a launch.json file 创建一个新的配置文件。

注意,点击 Create a launch.json file 创建新的配置文件时,VSCode 主窗口要处在打开某一个 C++ 文件状态下,这样它才能自动识别你是要进行 C++ 项目的编译调试工作。 创建新的配置文件后,VSCode 会自动打开该 launch.json 文件:

你需要给出对应的配置参数才能开始进行编译调试。好在这个插件已经给出了一般的配置模板,点击 Add Configuration,VSCode 会询问我们要选择何种调试工具,Linux 上一般都预装了 gdb,所以我们就选 C/C++: (gdb) Launch 即可。生成的配置模板大致如下所示:

代码语言:javascript
复制
{
    // 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": "enter program name, for example ${workspaceFolder}/a.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description":  "Set Disassembly Flavor to Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

最后,我们只需要修改模板中相应的参数即可,主要是 "program" 和 "args" 字段。"program" 字段用来指定要调试的二进制可执行文件,"args" 用来指定传给二进制可执件文件的输入参数。完成这两项后,就可以开始基本的调试了。 如果你的项目只包含源代码,那么你需要先将源代码编译一遍。一般来说有 Makefile 文件的可以直接 make 编译,没有 Makefile 文件的可以找找是否有 CMakeLists 文件或者 Configure 脚本,然后使用它们生成 Makefile 文件后再 make 编译,在项目中的 README 中一般也会说明如何编译。不过编译时需要注意的是,确保 Makefile 文件中的 CFLAGS 和 CXXFLAGS 变量包含 -g 参数,如果没有则加上,-g 参数是为了保证编译出来的二进制文件包含调试信息(也即俗称的 Debug 版本二进制文件),这样我们才能使用调试工具进行调试。

附录

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 简介
  • 2. 配置
  • 附录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档