ubuntu20.04配置调试工具

1.准备工作:安装g++或者gdb

sudo apt updatesudo apt install g++g++ --versionsudo apt install gdbgdb --version

2.配置环境

2.1在本地新建一个main.cpp

#include <iostream>
#include <vector>
#include <string>using namespace std;int main()
{vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};for (const string& word : msg){cout << word << " ";}cout << endl;
}

2.2调试,点击左边按钮,选择创建launch.json文件

 注意:1.“program”表示需要调试的文件,需要和下面的cwd路径一致,下面设置为工作目录 ${fileDirname} 中的 ${fileBasenameNoExtension} 

2.注意gdb路径:

"miDebuggerPath": "gdb", // 调试器路径,Windows下后缀不能省略,Linux下则去掉

3.“stopAtEntry”默认为false, 运行调试时,debugger不会在源文件中添加断点,设置为true时,调试会在main函数入口处等待。

将launch.json文件修改为如下:

{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示"type": "cppdbg", // 配置类型,这里只能为cppdbg"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)"program": "${fileDirname}/{fileBasenameNoExtension}", // 将要进行调试的程序的路径"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,我一般设置为true"cwd": "${fileDirname}", // 调试程序时的工作目录"environment": [], // (环境变量?)"externalConsole": false, // 调试时是否显示控制台窗口,一般设置为true显示控制台,// 但是最新版cpptools有BUG,具体请看文末的注意"internalConsoleOptions": "neverOpen", // 如果不设为neverOpen,调试时会跳到“调试控制台”选项卡,你应该不需要对gdb手动输命令吧?"MIMode": "gdb", // 指定连接的调试器,可以为gdb或lldb。但目前lldb在windows下没有预编译好的版本。"miDebuggerPath": "/usr/bin/gdb", // 调试器路径,Windows下后缀不能省略,Linux下则去掉"setupCommands": [ // 用处未知,模板如此{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": false}],}]
}

2.3编译,生成tasks.json文件

快捷键:ctrl+shift+b

根据自己的需求来修改,tasks.json是为整个目录配置环境,不需要修改诸如 “${fileDirname}” 这样的变量,“type”可以改成“shell”,不能任意;  “label”是task的名称,可以随意,但要与launch.json文件中的变量“preLaunchTask”设置一致; “command” 来指定编译器名,可以不带绝对路径。变量参考详见官方文档

 

{"version": "2.0.0","tasks": [{"label": "gcc","command": "gcc","args": ["${file}","-o","${workspaceFolder}/main","-g","-static-libgcc","-std=c99"],"type": "shell","group": "build","presentation": {"echo": true,"reveal": "always","focus": true,"panel": "shared"},"problemMatcher": "$gcc"},{"type": "cppbuild","label": "g++ build","command": "g++","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "调试器生成的任务。"}]
}

3.调试代码,显示结果

F5进行单步调试

 参考链接1:

https://www.cnblogs.com/booturbo/p/17379178.html#:~:text=%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AAlaunch.json%E6%96%87%E4%BB%B6%E6%9D%A5%E9%85%8D%E7%BD%AE%E8%B0%83%E8%AF%95%E7%8E%AF%E5%A2%83%EF%BC%8C%E9%80%89%E6%8B%A9Run%20--%3E%20Add%20Configuration%EF%BC%8C%E4%BC%9A%E8%87%AA%E5%8A%A8%E7%94%9F%E6%88%90%E4%B8%80%E4%B8%AAlaunch.json%EF%BC%8C%E7%82%B9%E5%87%BB%E5%8F%B3%E4%B8%8B%E8%A7%92%E7%9A%84Add%20Configuration%E6%9D%A5%E9%80%89%E5%AE%9A%E8%A6%81%E5%8A%A0%E5%85%A5%E7%9A%84%E9%85%8D%E7%BD%AEC%2FC%2B%2B%3A%20%28gdb%29%20Launch%EF%BC%88VS,Code%E7%89%88%E6%9C%AC%E4%B8%8D%E5%90%8C%EF%BC%8C%E6%96%B9%E5%BC%8F%E6%9C%89%E4%BA%9B%E5%8F%98%E5%8C%96%EF%BC%89%EF%BC%8C%E2%80%9Cprogram%E2%80%9D%E8%A1%A8%E7%A4%BA%E9%9C%80%E8%A6%81%E8%B0%83%E8%AF%95%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%8C%E4%B8%8B%E9%9D%A2%E8%AE%BE%E7%BD%AE%E4%B8%BA%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95%20%24%20%7BfileDirname%7D%20%E4%B8%AD%E7%9A%84%20%24%20%7BfileBasenameNoExtension%7D%20%EF%BC%8C%E5%BD%93test.cc%E5%A4%84%E4%BA%8E%E6%89%93%E5%BC%80%E7%8A%B6%E6%80%81%E6%97%B6%EF%BC%8C%E7%BC%96%E8%AF%91%E5%BE%97%E5%88%B0%E7%9A%84test%E4%BC%9A%E8%A2%AB%E8%B0%83%E8%AF%95%EF%BC%8C%E2%80%9CstopAtEntry%E2%80%9D%E9%BB%98%E8%AE%A4%E4%B8%BAfalse%2C%20%E8%BF%90%E8%A1%8C%E8%B0%83%E8%AF%95%E6%97%B6%EF%BC%8Cdebugger%E4%B8%8D%E4%BC%9A%E5%9C%A8%E6%BA%90%E6%96%87%E4%BB%B6%E4%B8%AD%E6%B7%BB%E5%8A%A0%E6%96%AD%E7%82%B9%EF%BC%8C%E8%AE%BE%E7%BD%AE%E4%B8%BAtrue%E6%97%B6%EF%BC%8C%E8%B0%83%E8%AF%95%E4%BC%9A%E5%9C%A8main%E5%87%BD%E6%95%B0%E5%85%A5%E5%8F%A3%E5%A4%84%E7%AD%89%E5%BE%85%E3%80%82

 参考链接2:

记录一次在Ubuntu18.04下的VSCode C/C++编译环境配置过程——2019年1月_warning found (use --debug to expand): - empty con-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

克隆gitee仓库,在vs2022创建文件夹开发项目操作步骤

git网站 git知识大全 git教程&#xff1a;廖雪峰的官方网站 git菜鸟教程 gitee之创建项目步骤 同步源仓库 2. 克隆命令 3. 右击git Bash Here>粘贴命令行 4. 选中项目文件夹》创建本人文件夹&#xff08;ZYY&#xff09; 5. 打开vs2022》新建项目》选择Framework》下…

C++精解【10】

文章目录 读写文件概述example csv读文件读取每个字段读取机器学习数据库iris constexpr函数GMP大整数codeblock环境配置数据类型函数类 EigenminCoeff 和maxCoeffArray类 读写文件 概述 fstream typedef basic_fstream<char, char_traits<char>> fstream;此类型…

VSCode常用的一些插件

Chinese (Simplified) 汉语&#xff08;简体&#xff09;拓展包。 Auto Close Tag 可以自动增加xml/html的闭合标签。 CodeSnap 截图神器。截图效果在下面。 Dracula Official vscode一个很好看的主题。 Git Graph git管理工具。 GitHub Repositories 有了它&#xff0c;不…

前端利用vue如何实现导入和导出功能.md

1. 前端利用vue如何实现导入和到处功能 1.1. 导入功能&#xff08;以导入Excel文件为例&#xff09; 1.1.1. 实现步骤: 1.1.1.1. 安装依赖: 首先&#xff0c;你需要安装处理Excel文件的库&#xff0c;如xlsx。1.1.1.2. 创建上传组件: 使用Element UI的<el-upload>组件或其…

Qt:5.QWidget属性介绍(Enabled属性-控件可用性设置、geometry属性-控件位置/大小设置)

目录 一、 QWidget属性的介绍&#xff1a; 二、Enabled属性-控件可用性设置&#xff1a; 2.1Enabled属性的介绍&#xff1a; 2.2获取控件当前可用状态的api——isEnabled()&#xff1a; 2.3设置控件当前的可用状态的api—— setEnabled() &#xff1a; 2.4 实例&#xff…

git提交实战

以新项目为例&#xff0c;如何在新项目新分支提交代码。 1.查看文件所在位置 git init 2.克隆项目到本地并完成身份配置 3.将需要新增的文件放到指定目录路径下 4.进入新克隆的文件 cd XXX 5.切换分支 git checkout XXX 6.标红者即为新提交的文件 git status 7.加入 git …

Is ChatGPT a Good Personality Recognizer? A Preliminary Study?

ChatGPT是一个很好的人格识别者吗&#xff1f;初步调研 摘要1 介绍2 背景和相关工作3 实验3.1 数据集3.2 提示策略3.3 基线3.4 评估指标3.5 实现细节3.6 Overall Performance (RQ1)3.7 ChatGPT在人格识别上的公平性 (RQ2)3.8 ChatGPT对下游任务的人格识别能力&#xff08;RQ3&a…

linux——IPC 进程间通信

IPC 进程间通信 interprocess communicate IPC&#xff08;Inter-Process Communication&#xff09;&#xff0c;即进程间通信&#xff0c;其产生的原因主要可以归纳为以下几点&#xff1a; 进程空间的独立性 资源隔离&#xff1a;在现代操作系统中&#xff0c;每个进程都…

ValidateAntiForgeryToken、AntiForgeryToken 防止CSRF(跨网站请求伪造)

用途&#xff1a;防止CSRF&#xff08;跨网站请求伪造&#xff09;。 用法&#xff1a;在View->Form表单中: aspx&#xff1a;<%:Html.AntiForgeryToken()%> razor&#xff1a;Html.AntiForgeryToken() 在Controller->Action动作上&#xff1a;[ValidateAntiForge…

SSM少儿读者交流系-计算机毕业设计源码20005

摘要 随着信息技术的发展和互联网的普及&#xff0c;少儿读者之间的交流方式发生了革命性的变化。通过使用Java编程语言&#xff0c;可以实现系统的高度灵活性和可扩展性。而SSM框架的采用&#xff0c;可以提供良好的开发结构和代码管理&#xff0c;使系统更加稳定和易于维护。…

基于Springboot的智慧信息化机房管理系统

1 项目介绍 1.1 研究目的和意义 随着社会的快速发展&#xff0c;计算机的影响是全面且深入的。人们生活水平的不断提高&#xff0c;日常生活中人们对高校共享机房管理方面的要求也在不断提高&#xff0c;需要高校共享机房的人数更是不断增加&#xff0c;使得高校共享机房管理…

向量数据库、主键存储引擎、高速网络 RDMA 框架……DolphinDB 版本更新啦!

盛夏已至&#xff0c;炎热的七月伊始&#xff0c;DolphinDB 也迎来了版本的更新。此次更新的 3.00.1 与 2.00.13 版本从多个维度进行了优化扩展&#xff0c;进一步深化了 DolphinDB 在机器学习、数据分析等领域的尝试与探索。 为了响应用户日益增长的 AI 运算需求&#xff0c;…

idea Git操作

1、代码拉取&#xff08;左上角&#xff09; 或 2、代码push&#xff08;左上角&#xff09; 3、切换分支&#xff08;右下角&#xff09; 4、分支管理 5、当前分支和某一个分支对比差异 6、当前分支某一个提交需要恢复成提交前状态&#xff08;revert&#xff09; 7、其他分…

大疆2025校招内推

需要内推码的请留言哦 期待你的加入

改变conda创建虚拟环境时的默认路径(C盘)

①C:\Users\Lenovo 找到C盘中用户目录下的.condarc文件 ②打开.condarc文件后&#xff0c;添加并修改.condarc 中的 env_dirs 环境路径&#xff0c;按顺序第⼀个路径作为默认存储路径&#xff0c;也就是我的E盘&#xff08;需要你先在E盘中新建文件夹envsE&#xff09;。修改完…

LabVIEW新能源汽车电池性能测试系统

新能源汽车的核心部件之一是电池&#xff0c;其性能直接关系到整车的续航里程、安全性和寿命。为了确保电池的性能和可靠性&#xff0c;测试是必不可少的环节。本文介绍了一种基于LabVIEW的新能源汽车电池性能测试系统&#xff0c;通过LabVIEW与数据采集设备的无缝集成&#xf…

【web APIs】快速上手Day05(Bom操作)

目录 Web APIs - 第5天笔记js组成window对象BOM定时器-延迟函数案例-5秒钟之后消失的广告 JS执行机制location对象案例-5秒钟之后跳转的页面 navigator对象histroy对象 本地存储&#xff08;今日重点&#xff09;localStorage&#xff08;重点&#xff09;sessionStorage&#…

JAVA数字化产科管理平台源码:涵盖了孕妇从建档、产检、保健、随访、分娩到产后42天全流程的信息化管理

JAVA数字化产科管理平台源码&#xff1a;涵盖了孕妇从建档、产检、保健、随访、分娩到产后42天全流程的信息化管理 智慧产科管理系统是基于自主研发妇幼信息平台&#xff0c;为医院产科量身打造的信息管理系统&#xff0c;涵盖了孕妇从建档、产检、保健、随访、分娩到产后42天全…

米国政府呼吁抛弃 C 和 C++

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; 很多观点认为C 或 C永远不可被…