VS Code中C++程序的调试(Debug)功能

news/2024/11/17 3:48:41/

有一个.vscode文件,存放当前工作区相关配置文件的目录。

launch.json

{"version": "0.2.0","configurations": [{"name": "gcc.exe - 生成和调试活动文件",  // 该调试任务的名字,启动调试时会在待选列表中显示"type": "cppdbg","request": "launch","program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,  // 这一项控制是否在入口处暂停,默认false不暂停,改为true暂停"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,  // 这一项控制是否启动外部控制台(独立的黑框)运行程序,默认false表示在集成终端中运行"MIMode": "gdb","miDebuggerPath": "D:\\mingw64\\bin\\gdb.exe",  // 调试器路径,必须与你自己的电脑相符"setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "C/C++: gcc.exe build active file"  // 调试前的预执行任务,这里的值是tasks.json文件中对应的编译任务,也就是调试前需要先编译}]
}

tasks.json

{"tasks": [{"type": "shell","label": "C/C++: gcc.exe build active file",  // 编译任务的名称,跟上面preLaunchTask的值对应"command": "D:/mingw64/bin/g++.exe",  // 编译器的路径,须跟你自己的电脑相符"args": [  // 编译器执行时的参数,跟手动编译时输入的内容基本一致,主要是多了-g参数,以加入调试信息"-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "D:/mingw64/bin"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true}}],"version": "2.0.0"
}

编译文件

在cmakelists.txt文件中需要设置编译选项:

set(CMAKE_CXX_FLAGS "${CAMKE_CXX_FLAGS} -std=c++11 -pthread -g")

然后编译文件,按这个按钮,选择要调试的可执行的文件,然后就可以对项目进行调试了。
在这里插入图片描述


http://www.ppmy.cn/news/1028004.html

相关文章

[NOIP2003 普及组] 栈

题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。 栈有两种最重要的操作,即 pop(从栈顶弹出一个元素)和 push(将一个元素进栈)。 栈的重要性不言自…

基于微信小程序的应届大学生招聘平台的设计与实现

伴随着社会以及科学技术的发展,互联网已经渗透在人们的身边,网络慢慢的变成了人们的生活必不可少的一部分,紧接着众多智能手机飞速的发展,小程序这一名词已不陌生,越来越多的企业、公司、高校、医院等机构都会使用小程…

Linux命令 -- sed

Linux命令 -- sed 插入删除覆盖复制打印替换参数 -f mo.txt文件内容,若无特别说明,默认如下 [rootlocalhost testdir]# cat mo.txt 1 2 3 4 5插入 先来展示一个执行未生效的 # 给第2行插入hello world。命令执行之后会打印效果,但文件内容…

Microsoft365家庭版1年订阅新功能及版本对比

Microsoft 365可帮助您工作、学习、组织、连接和创,只需一项方便的订阅,即可尽享具有 Microsft 365 的6款精品应用、可同时登录5 台设备(包括 Windows、macOS、iOS 和 Android 设备)、高级安全性等,并且可以自由管理授…

fork函数和exec族函数的结合使用 的案例

首先回顾之前所讲,在说明“为什么要创建进程”的时候,提到过以下两个原因: 其中第一个原因很好理解,而第二个原因就包含了上节所讲的exec族函数的知识点,并且不管是之前的博文还是上节的exec,都提到了一点“…

NanoPi NEO移植LVGL8.3.5到1.69寸ST7789V屏幕

移植前准备 移植好fbtft屏幕驱动 参考链接:友善之臂NanoPi NEO利用fbtft驱动点亮1.69寸ST7789V2屏幕 获取源码 名称地址描述lvglhttps://github.com/lvgl/lvgl.gitlvgl-8.3.5lv_drivershttps://github.com/lvgl/lv_drivers.gitlv_drivers-6.1.1 创建工程目录 创…

婚恋交友h5多端小程序开源版开发

婚恋交友h5多端小程序开源版开发 以下是婚恋交友H5多端小程序的功能列表: 用户注册和登录:用户可以通过手机号码或第三方账号注册和登录。个人信息填写:用户可以填写个人基本信息,包括姓名、性别、年龄、身高、体重、学历、职业等…

STM32 F103C8T6学习笔记6:IIC通信__驱动MPU6050 6轴运动处理组件—一阶互补滤波

今日主要学习一款倾角传感器——MPU6050,往后对单片机原理基础讲的会比较少,更倾向于简单粗暴地贴代码,因为经过前些日子对MSP432的学习,对原理方面也有些熟络了,除了在新接触它时会对其引脚、时钟、总线等进行仔细一些的研究之外…