在Ubuntu使用VScode配合GDB完成代码调试

想学一下Ubuntu下的vscode代码调试,在网上找了很多博客,发现根本不管用,而且很多都是在Windows下的,与我的需求(使用CMakeLists.txt)不同,根本不能用,研究了一下。并记录。

1.创建C++项目

首先在桌面上建立一个文件夹,命名为test。

打开vscode,安装扩展

ctrl+shift+p,选择第一个Create C++ project,并选择刚刚建立的test文件夹,即可完成C++项目的构建

如图

2.编写CMakeLists.txt文件,修改配置

(1)编写CMakeLists.txt,命名为c++,设置编译生成的二进制可执行文件路径为build文件夹

cmake_minimum_required(VERSION 2.8)
project(c++)add_executable(c++ src/main.cpp)
set(EXECUTABLE_OUTPUT_PATH ../build)

(2)修改launch.json,主要修改可执行文件的路径,即为下面的program

原图:

修改后:

(3)简单写一个main.cpp函数(仅做测试)

#include <iostream>
#include <vector>二分查找 /
class Solution{public:int search(std::vector<int>& nums, int target){int left = 0;int right = nums.size();while(left < right){int middle = left + (right - left) / 2;if(nums[middle] < target)left = middle + 1;else if(nums[middle] > target)right = middle;elsereturn middle; } return -1;}
};int main(int argc, char *argv[])
{Solution solution;std::vector<int> nums = {-1, 0, 3, 5, 9, 12};std::cout << solution.search(nums, 9) << std::endl;
}

3.开始调试

(1)编译代码

mkdir build 
cd build
cmake ..
make

可以在build文件夹下面看见生成的c++可执行文件

(2)准备调试

回到main.cpp,点击右上角下齿轮,Debug C/C++ File

 选择红色圈的一项

会在src下看到生成了main.o和main.d文件,这是代码调试所需要的中间文件

(3)开始调试

重新点击右上角下齿轮,Debug C/C++ File,这次选择另一个红色圈的一项,同时设置断点(我设在28行)

over

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

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

相关文章

浅谈人工智能之Java调用基于Ollama本地大模型

引言 随着人工智能技术的飞速发展&#xff0c;大型语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为自然语言处理领域的研究热点。Ollama是一个强大的工具&#xff0c;它使得在本地部署和管理这些大型语言模型变得更加便捷。本文档旨在指导Java开发者如何在…

【C++ Primer Plus习题】16.7

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: #include <iostream> #include <vector> #include <…

I/O流(Java)

目录 1. IO概述 1.1 什么是IO 1.2 IO的分类 1.3 IO的流向说明图解 1.4 顶级父类 2. File类 2.1 概述 2.2 构造方法 2.3 常用方法 2.3.1 获取功能的方法 2.3.2 绝对路径和相对路径 2.3.3 判断功能的方法 2.3.4 创建删除功能的方法 2.3.5 目录的遍历 3. 字节流 3…

[Golang] Context

[Golang] Context 文章目录 [Golang] Context什么是context创建context创建根context创建context context的作用并发控制context.WithCancelcontext.WithDeadlinecontext.WithTimeoutcontext.WithValue 什么是context Golang在1.7版本中引入了一个标准库的接口context&#xf…

计算机毕业设计 办公用品管理系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

如何将扫码提交的数据直接推送到企业微信、钉钉、飞书群聊?详细教程

功能介绍 在草料制作的表单中&#xff0c;填表人扫码填写并提交数据后&#xff0c;这些信息可以立即通过企业微信、钉钉或飞书自动推送到相应的群聊中&#xff0c;实现即时共享和沟通&#xff0c;提升团队协作效率。 设置教程 企业微信 钉钉 飞书

蚂蚁在 RAG 与向量检索上的实践:技术应用与创新分析

引言 在AI技术迅猛发展的背景下&#xff0c;如何有效地处理海量数据成为了技术创新的关键问题。向量数据库和RAG&#xff08;Retrieval-Augmented Generation&#xff09;技术结合&#xff0c;为提升生成式AI应用的准确性和实时性提供了有效的解决方案。本文结合蚂蚁集团在向量…

国外创意二维码应用案例:韩国Cheil特别制作“希望胶带”,帮助寻找失踪儿童!

每年&#xff0c;在全世界都有大量的儿童失踪案件发生。对于父母来说&#xff0c;仅凭一张照片、一张海报要在茫茫人海里找到失踪的孩子&#xff0c;何其艰难&#xff1f; 2020年5月&#xff0c;韩国广告公司Cheil与韩国国家警察局宣布&#xff1a;为寻找长期失踪儿童&#xf…

9.18作业

提示并输入一个字符串&#xff0c;统计该字符串中字母、数字、空格、其他字符的个数并输出 代码展示 #include <iostream>using namespace std;int main() {string str;int countc 0; // 字母计数int countn 0; // 数字计数int count 0; // 空格计数int counto 0;…

面了智谱大模型算法岗,效率贼高!

最近这一两周不少互联网公司都已经开始秋招提前批面试了。不同以往的是&#xff0c;当前职场环境已不再是那个双向奔赴时代了。求职者在变多&#xff0c;HC 在变少&#xff0c;岗位要求还更高了。 最近&#xff0c;我们又陆续整理了很多大厂的面试题&#xff0c;帮助一些球友解…

Renesas R7FA8D1BH (Cortex®-M85)内部RTC的应用

目录 概述 1 软硬件 1.1 软硬件环境信息 1.2 开发板信息 1.3 调试器信息 2 FSP配置RTC 2.1 配置参数 2.2 RTC模块介绍 3 RTC相关函数 3.1 R_RTC_Open() 3.2 R_RTC_Close() 3.3 R_RTC_ClockSourceSet() 3.4 R_RTC_CalendarTimeSet() 3.5 R_RTC_CalendarTimeGet()…

workbench的使用

connection name 是可以任意取的 Hostname 是数据库的地址&#xff0c;本地的话就默认是127.0.0.1 port是端口 选择store in value来存储密码 点击测试连接test connection 单击就可以登录&#xff0c;如果需要编辑的话&#xff0c;右键选择edit connection 可以选择删除账…

C++_类和对象(下篇)—— 内部类、匿名对象、对象拷贝时的编译器优化

目录 四、类和对象&#xff08;下篇&#xff09; 5、内部类 6、匿名对象 7、对象拷贝时的编译器优化 四、类和对象&#xff08;下篇&#xff09; 5、内部类 如果⼀个类定义在另⼀个类的内部&#xff0c;这个内部类就叫做内部类。内部类是⼀个独立的类&#xff0c;跟定义…

【C语言】带你手把手拿捏指针(3)(含转移表)

文章目录 一、字符指针变量二、数组指针变量1.数组指针变量是什么2.数组指针变量的初始化 三、二维数组传参的本质四、函数指针变量1. 函数指针变量的创建2.函数指针的使用3.案例解析&#xff1a; 五、typedof关键字六、函数指针数组和转移表1.函数指针数组2.转移表 一、字符指…

问题:WINCC 7.5 结构变量只能是内部变量吗?

问题&#xff1a;WINCC 7.5 结构变量只能是内部变量吗&#xff1f; 答案&#xff1a;不是的呢&#xff0c;你创建结构的时候可以选择外部变量的 如图&#xff1a;工控人加入PLC工业自动化精英社群 #WINCC 7.5##变量##结构##西门子工业支持中心#

Spring Cloud Alibaba-(1)搭建项目环境

1.Spring Cloud Alibaba&#xff08;官网&#xff1a;https://sca.aliyun.com/&#xff09; Spring Cloud Alibaba 是阿里巴巴结合自身丰富的微服务实践而推出的微服务开发的一站式解决方案&#xff0c;是 Spring Cloud 第二代实现的主要组成部分。吸收了 Spring Cloud Netflix…

如何让源码加密后还能运行?五种企业源代码加密措施推荐

随着企业越来越依赖技术创新&#xff0c;保护源代码的安全变得尤为重要。源代码是企业的核心资产之一&#xff0c;包含了重要的业务逻辑和技术创新。未经授权的访问、篡改或泄露都可能给公司带来巨大的损失。因此&#xff0c;实施有效的源代码加密措施至关重要。本文将推荐五种…

龙海家园的免费停车点探寻

​第一次去龙海家园就把我羡慕到了&#xff0c;楼下就是鲤鱼门地铁&#xff0c;龙海家园底商的餐饮好吃又实惠&#xff0c;还有特别多的超市&#xff0c;空中花园也很大&#xff0c;还可以共享前海基金小镇的花园环境。虽然我看到很多车排队等进龙海家园&#xff0c;但是我还是…

传输层协议(TCP和UDP)

目录 一、UDP 1、UDPAPI 2、UDPAPI的使用 二、TCP 1、TCPAPI 2、TCP的相关特性 2.1 确认应答 2.2 超时重传 2.3 连接管理&#xff08;三次握手&#xff0c;四次挥手&#xff09; 2.4 滑动窗口 2.5 流量控制 2.6 拥塞控制 2.7 延时应答 2.8 捎带应答 2.9 面向字节…

北森笔试测评之言语理解到底难不难

前篇笔记我提到过&#xff0c;言语理解是最难的&#xff0c;有同学质疑了。言语我都会做呀&#xff0c;甚至有的可以搜到&#xff0c;而图标和图形我有的不会。这里需要指出&#xff0c;会做不等于作对&#xff0c;可以回顾到高中甚至初中的时候&#xff0c;感觉做的好的一般都…