教你三步搞定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):停止调试
相关推荐
我命由我123453 小时前
Android Studio - Android Studio 自定义预览尺寸
android·java·ide·java-ee·android studio·android-studio·android runtime
远离UE44 小时前
UE5 compute shader 原子加
开发语言·c++·ue5
C+-C资深大佬4 小时前
C++ 显式类型转换详解:static_cast、dynamic_cast、const_cast、reinterpret_cast
开发语言·c++
luj_17686 小时前
心形曲线轨迹控制三大关键技术
c语言·开发语言·c++·经验分享·算法
取地址符6 小时前
C++学习笔记(基于learn-cxx)(1)
c++·经验分享·笔记·学习
思麟呀7 小时前
C++17(三)if constexpr+折叠表达式
开发语言·c++
ysa0510307 小时前
【板子】ST表
c++·笔记·算法·板子
CHHH_HHH7 小时前
【C++11】深入解析C++可变参数模板
开发语言·c++·算法·stl·c++11
十五年专注C++开发8 小时前
fatal error C1189: #error: WinSock.h has already been included 的解决方案
c++·socket·boost
旖-旎11 小时前
《LeetCode 53 最大子数组和 || LeetCode 918 环形子数组的最大和》
c++·算法·leetcode·动态规划