教你三步搞定VsCode调试C++

目录

      • [1 配置编译任务](#1 配置编译任务)
      • [2 配置调试任务](#2 配置调试任务)
      • [3 进行调试](#3 进行调试)

1 配置编译任务

使用VsCode进行C++开发时,除了在机器上安装必要的编译工具(例如,gcc、g++、cmake等)之外,还需要在VsCode配置编译任务,从而可以通过点击或者快捷键的方式进行快速编译。

配置编译任务需要配置两个文件:

  • c_cpp_properties.json:环境管理
  • tasks.json:编译任务

配置c_cpp_properties.json:

ctrl + p,输入> C/C++,在其中找到Edit Configuration:

需要配置的项主要有:

  • Compiler path:编译器路径
  • C standard:C语言版本
  • C++ standard:C++版本

配置tasks.json:

ctrl + p,输入> tasks:

然后将json修改为:

json 复制代码
{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "shell",
			"label": "cmake",
			"command": "cmake",
			"args": [
				"-G",
				"Unix Makefiles",
				"-DCMAKE_BUILD_TYPE=Debug"
			],
			"group": "build",
			"problemMatcher": [],
			"detail": "CMake template build task"
		},
		{
			"label": "make",
			"command": "make",
			"problemMatcher": []
			
		},
		{
			"label": "Build",
			"dependsOrder": "sequence",
			"dependsOn": [
				"cmake",
				"make"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			}
		}
	]
}

tasks中有三个对象,第一个是执行cmake命令,第二个是make命令,第三个是将第一个和第二个整合起来,顺序调用cmake和make,并且设置为默认操作,因此,当选择Terminial->Run Build Task时,就会依次执行cmake和make进行编译。

2 配置调试任务

ctrl + p,输入> Debug:

随便选择一个应用类型,然后将launch.json修改为:

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": [
        {
            "type": "cppdbg",
            "request": "launch",
            "name": "gdb",
            "program": "${workspaceFolder}/test",
            "MIMode": "gdb",
            "cwd": "${workspaceFolder}"
        }
    ]
}
  • type:类型
  • name:名称,用于区分多个配置
  • program:调试的程序
  • MIMode:指定调试器,这里用gdb
  • cwd:当前目录,可以直接使用变量

然后就可以打开调试窗口启动调试:

3 进行调试

在调试窗口,可以设置断点,然后进行调试,调试过程中可能会使用到4个快捷键:

  • F10(Step Over):一步一步执行
  • F11(Step Into):进入函数执行
  • F5(Continue):继续执行,在下一个断点处停住
  • Ctrl + Shift + F5(Stop):停止调试
相关推荐
2301_777998341 天前
Linux线程同步与互斥(三):信号量与环形队列实现生产者消费者模型
linux·c语言·c++
啦啦啦啦啦zzzz1 天前
设计模式:单例模式和工厂模式
c++·单例模式·设计模式·工厂模式
Henry Zhu1231 天前
C++ 动态多态详解
c++
此生决int1 天前
深入理解C++系列(06)——模版初阶与STL
开发语言·c++
c238561 天前
《枚举算法 “翻译官”:用 enum class 给 “游游的礼盒” 算分》
c语言·c++·算法
noipp1 天前
推荐题目:洛谷 P5843 [SCOI2012] Blinker 的噩梦
c语言·数据结构·c++·算法·游戏·洛谷·luogu
鱼子星_1 天前
《算 · 法》题目解析篇(1):最近公共祖先问题,线段树,最长回文子序列
c++·算法·动态规划·递归
计算机内卷的N天1 天前
CMake与Visual Studio的使用
c++·ide·visual studio
汉克老师1 天前
GESP2026年3月认证C++七级( 第三部分编程题(1、物流网络))精讲
c++·最短路·gesp7级
鱼子星_1 天前
【C++】深入剖析list:list及其双向迭代器实现
开发语言·数据结构·c++·笔记·stl·list