vscode 调试使用 make 编译的项目

news2024/11/18 19:29:13
1、首先点击运行 --> 启动调试:

在这里插入图片描述

2、选择g++或gcc生成和调试活动文件:

在这里插入图片描述

3、出现下面提示是正常的,点击仍要调试:

在这里插入图片描述
点击打开“launch.json”:
在这里插入图片描述

4、此时会在项目工作目录下生成tsak.josn和launch.json文件:

如下,下面为默认生成的内容,我们需要根据项目情况来修改:
task.json文件:

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ 生成活动文件",
            "command": "/usr/bin/g++",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

launch.json文件:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": []
}
5、修改task.json与launch.json文件

若项目工作空间为 Test,并且Test 下有个目录为 MyProject,其中存放 Makefile 等文件;
首先修改tsak.json文件:
${workspaceFolder} 代表工作空间 Test,make 命令应该在 Makefile 同级目录下使用,则cwd应按下面方式修改:

{
    "tasks": [
        {
            "type": "shell",
            "label": "build MyProject",
            "command": "make",
            "options": {
                "cwd": "${workspaceFolder}/MyProject"
            },
            "group": "build"
        }
    ],
    "version": "2.0.0"
}

修改launch.json文件:
launch.json文件需要修改

  • program:可执行文件;
  • preLaunchTask:同tsak.josn中lable内容需要保持相同;
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/MyProject/bin/MyProject",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build MyProject"
        }
    ]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1076401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

支持多种格式照片处理软件Lightroom Classic 2022 mac中文功能特点

Lightroom Classic 2022 mac是一款专业级数字图像处理软件,主要用于数字照片的后期处理和管理。它提供了丰富的工具和功能,可以帮助用户对照片进行调整、修饰、管理和分享。 Lightroom Classic 2022 mac软件功能和特点 RAW格式支持:Lightroo…

网络安全(骇客)—技术学习

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟入…

JavaScript进阶(二十三):立即执行函数(匿名函数)( ( ) { } ( ) )含义解析

文章目录 一、前言二、立即执行函数2.1 立即执行函数使用的场景 三、拓展阅读 一、前言 前端项目改造过程中,引入的工具类实现如下: var tensquared(function(x) {return x*x; }(10)); 拆解以上语句如下: var tensquared xx; 这是赋值语句…

Redis学习2——String数据类型的操作

Redis常用数据类型 String 数据结构 有点像动态分区按边界对齐。 基本操作 也可以一次设置多个 得到范围值 setrange和append的区别是宏观上看append是从尾部追加而setrange是从设置的起始位置开始的。 也可以在set时就对key设置过期时间, 最后一个是

九小场所安全隐患排查—线上隐患上报、整改

为进一步加强治安管理工作,严格落实安全责任,扎实筑牢“安全防火墙”,营造和谐、稳定、文明的社会环境。我们可借助凡尔码搭建九小场所安全码,实现消防安全监督管理,落实消防安全责任,形成九小场所网格化监…

5 款漏洞扫描工具:实用、强力、全面(含开源)

引言 漏洞扫描是一种安全检测行为,更是一类重要的网络安全技术,它能够有效提高网络的安全性,而且漏洞扫描属于主动的防范措施,可以很好地避免黑客攻击行为,做到防患于未然。那么好用的漏洞扫描工具有哪些? …

防止SQL注入攻击的综合解决方案

文章目录 摘要背景和危害性防御措施示例代码(Java)示例代码(PHP)示例MySQL命令示例代码(Python)示例代码(C#,使用Entity Framework) 进一步防御SQL注入攻击的措施使用ORM…

SpringCloud组件Ribbon的IRule的问题排查

最近很久没有写文章啦,刚好遇到了一个问题,其实问题也挺简单,但是还是得对源码有一定了解才能够发现。 最近在实现一个根据请求流量的标签,将请求转发到对应的节点,其实和俗称的灰度请求有点相似, 实现思…

Redis安装教程

官网地址 地址链接:传送门 安装步骤 这里有更多版本的选择 进去根据自己的需要选择版本,我这里用的7系列的稳定版。

软件企业找第三方软件测评机构做确认测试有什么优势?

软件确认测试是一个在软件开发过程中十分重要的环节。它确保了软件的功能符合预期,达到了用户的需求和期望。确认测试主要验证软件的功能、性能、易用性、稳定性等方面,旨在发现和修复潜在的问题和缺陷。通过进行全面的确认测试,软件企业可以…

操作系统学习笔记--进程与线程

进程 概念 不同的角度有不同的定义 进程是程序的一次执行过程进程是一个程序及其数据在处理机上顺序执行时所发生的活动进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位 进程:是动态的,是…

Flink-SQL join 优化 -- MiniBatch + local-global

背景 问题1. 近期在开发flink-sql期间,发现数据在启动后,任务总是进行重试,运行一段时间后,container心跳超时,内存溢出,作业无法进行正常工作 023-10-07 14:53:30,408 | INFO | [flink-akka.actor.defa…

关于需要用到暂停的unity游戏

在做游戏的时候,我们经常需要用到Time.timescalse 0;来暂停游戏 但是,我们有些其他的东西,却不想它们被暂停影响了。 例如 1、Dotween 如上图增加一段.SetUpdate(true)即可 2、animator public Animator Ani;public void Firs…

链表(7.27)

3.3 链表的实现 3.3.1头插 原理图: newnode为新创建的节点 实现: //头插 //让新节点指向原来的头指针(节点),即新节点位于开头 newnode->next plist; //再让头指针(节点)指向新节点&#…

【亲测】简易商城小程序源码-易优CMS后台

易优小程序是基于前端开源小程序后端易优CMS标签化API接口, 是一套开源、快速搭建个性化需求的小程序CMS。轻量级TP底层框架,前后端分离, 标签化API接口可对接所有小程序,支持二次开发。即使小白用户也能轻松搭建制作一套完整的线…

90后整顿秦始皇老板

我的日常就像跑步机上急速前行的仓鼠,使劲往前冲,心有余力力有限。 我在一个电商运营公司做策划和写文案,每天总是加不完的班,从来没见过下午六点钟的太阳。 我做文案吗?唉,说实话,我倒觉得大…

C#(Csharp)我的基础教程(二)(我的菜鸟教程笔记)-属性和字段的探究与学习

目录 1、字段字段特点:2、属性属性的特点 1、字段 字段是定义在方法外面的变量,是成员变量,主要是为了类的内部数据交换使用,字段一般是用private修饰,也可以用readonly修饰,表示只读字段,其它…

10月底下架!亚马逊新增5大售前审核品类,提醒这6大站点卖家注意

近期,不少加拿大站、沙特阿拉伯站、埃及站、瑞典站、波兰站以及比利时站卖家陆续收到了亚马逊合规政策要求邮件,包括加拿大站对于“带拉绳的童装”、“水壶”、“玻璃门和围栏”三个品类,沙特阿拉伯、埃及对于“面向婴幼儿的食品”品类&#…

如何在C++项目中用C#运行程序调试C++ DLL

问题描述 在C#项目中调用C DLL时报错或者运行结果不符,此时需要运行C#项目并在C中加入断点进行调试 项目准备 项目一:C#项目(该项目调用C DLL)项目二:C项目(生成C DLL) 这两个项目不需要在同…

BGP服务器租用腾讯云和阿里云价格对比

BGP云服务器像阿里云和腾讯云均是BGP多线网络,速度更快延迟更低,阿里云BGP服务器2核2G3M带宽优惠价格108元一年起,腾讯云BGP服务器2核2G3M带宽95元一年起,阿腾云atengyun.com分享更多云服务器配置如2核4G、4核8G、8核16G等配置价格…