【vscode环境配置系列】vscode远程debug配置

news/2024/5/19 5:53:11

VSCODE debug环境配置

      • 插件安装
      • 配置文件
      • debug

插件安装

安装C/C++, C/C++ Runner

配置文件

在项目下建立.vscode文件夹,然后分别建立c_cpp_properties.json, launch.json,tasks.json,内容如下:

c_cpp_properties.json:

{"configurations": [{"name": "Linux","includePath": ["llvm-test/llvm-10.0/include","${workspaceFolder}/**"],"defines": [],"compilerPath": "llvm-test/llvm-10.0/bin/clang++","cStandard": "c11","cppStandard": "c++17","intelliSenseMode": "gcc-x64"}],"version": 4
}

launch.json: (注意,debug时可以选择gdb/lldb,lldb需要安装额外插件)

{"version": "0.2.0","configurations": [{"name": "(gdb) Launch","type": "cppdbg","request": "launch","program": "${fileDirname}/${fileBasenameNoExtension}","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb","preLaunchTask": "clang build active file","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "Set Disassembly Flavor to Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}]},{"name": "C/C++: Clang Launch (GDB)","type": "cppdbg","request": "launch","program": "${fileDirname}/${fileBasenameNoExtension}","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"MIMode": "lldb","preLaunchTask": "clang build active file","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}]}]
}

tasks.json:

{"version": "2.0.0","tasks": [{"type": "shell","label": "clang build active file","command": "llvm-test/llvm-10.0/bin/clang++","args": ["-g", "-O3","${file}","-I/llvm-test/llvm-10.0/include","-std=c++14",   "-fno-exceptions", "-fno-rtti", "-D_GNU_SOURCE", "-D__STDC_CONSTANT_MACROS", "-D__STDC_FORMAT_MACROS", "-D__STDC_LIMIT_MACROS","-L/llvm-test/llvm-10.0/lib","-lLLVMCore", "-lLLVMRemarks", "-lLLVMBitstreamReader", "-lLLVMBinaryFormat", "-lLLVMSupport", "-lLLVMDemangle","-lrt", "-ldl", "-ltinfo", "-lpthread", "-lm","-o","${fileDirname}/${fileBasenameNoExtension}"],"options": {"cwd": "${workspaceFolder}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true}}]
}

需要额外注意的是,lanch.json中通过"preLaunchTask": "clang build active file",预定义了debug之前需要进行的task,它巧妙地通过label "clang build active file"与task.json中的label进行关联,以在每次debug前重新编译。

debug

在这里插入图片描述


http://www.mrgr.cn/p/31488670

相关文章

20240505-感谢你为我郁闷的一天增添了一份快乐

哈哈哈我宣布这将会是我五月份见过的最好笑的笑话:来源:我在很久以前写的 Luogu B2077 角谷猜想 的题解评论区。 因为当时运算过程中的数据保证在 int 范围,我就用了 int,但是现在不行了,所以会 T。本文来自博客园,作者:A_box_of_yogurt,转载请注明原文链接:https://w…

[Linux][网络][TCP][一][TCP基础][TCP报头]详细讲解

目录 1.TCP头部格式2.TCP协议的特点3.TCP如何封装与分用4.通过序列号和确认应答号提高可靠性1.32位序列号2.32位确认应答号3.保证可靠性4.为什么序列号和确认应答号是单独的字段 5.窗口大小1.TCP的发送和接收缓冲区2.窗口大小 6.连接管理机制 1.TCP头部格式 TCP全称为"传输…

IGM焊接机器人RTE 495伺服电机维修详情一览

在当今科技迅速发展的时代,机器人已成为各行各业不可或缺的重要工具。IGM机器人便是其中之一,其工业机械手伺服马达作为机器人的关键部件,确保机器人能够高效、稳定地运行。当出现IGM焊接机器人RTE 495伺服电机故障问题时,及时进行…

魔百盒E900V22D刷机教程

参考:https://www.mydigit.cn/thread-305003-1-1.html https://www.52pojie.cn/forum.php?mod=viewthread&tid=1659478 https://www.znds.com/tv-1241881-1-1.html https://www.znds.com/tv-1241104-1-1.html >之前家里装移动宽带不是送了个机顶盒嘛,之前还一不小心点…

一测知“芯”!芯片测试如何确保电子设备的“心脏”健康?

文章目录 封装:芯片的“铠甲”与“桥梁”测试:芯片质量的“守门员”《芯片封测从入门到精通》亮点内容简介作者简介目录获取方式 在高科技飞速发展的今天,芯片作为电子设备的心脏,承载着计算、控制、存储等核心功能。然而&#xf…

OpenAI下周将发布ChatGPT搜索引擎,挑战谷歌搜索!

目前,多方位消息证实,OpenAI将会在5月9日上午10点公布该消息,大约是北京时间周五的凌晨2点。 5月3日,前Mila研究员、麻省理工讲师Lior S爆料,根据OpenAI最新的SSL证书日志显示,已经创建了search.chatgpt.c…

c++综合实验报告友元

综合性、设计性实验报告 专业:计算机科学与技术 一、实验目的: 1.熟练掌握友元函数和友元类设计的方法 2.掌握友元函数的含义,友元函数和成员函数的区别。 3.掌握友元类的含义。 二、实验仪器或设备:微型计算机 三、总体设计(设计原理、设计方案及流程等) 实验内容: 定…

分层架构上的探索实践

简介 因为身处在应对ToB需求的SAAS行业,复杂的需求在代码上造成的混乱始终是我们的一大困扰,所以我们在一些项目中尝采用整洁架构的分层模式对部分代码做了一些改善和实践。 在这篇文章中我来分享一下我在分层架构上的思考,一些实践方法。 为什么要分层? 我们都知道ToB行业…

Cmake Learn

目录 1 常用命令 (1)configure_file (2).cmake文件 (3) install (4)include_directories (5) add_subdirectory (6) find_libr…

笔记-用Python脚本启停JAR程序

用Python脚本启停JAR程序,需要用到python中的以下内置模块 subprocess 是 Python 的一个标准库模块,用于在新进程中执行子命令,获取子进程的输入/输出/错误以及返回码等os 是 Python 的一个标准库模块,它提供了与操作系统交互的功…

社区版pycharm下载安装教程

参考:韩顺平——下载 在浏览器输入 www.jetbrains.com/进入pycharm官网 指向Developer Tools,点击Pycharm 点击Download 为了更好得跟踪韩老师的教程,我这里选择下载与韩老师一致的版本(对版本无要求的话直接点击download)找到2023.2.2的版本,在PyCharm Community Editio…

嵌入式笔记4.2 USART

目录一、USART 简介二、USART 寄存器详解寄存器基础信息寄存器地址寄存器名称与作用USART 寄存器组简表寄存器详解1. 控制寄存器 1(USART_CR1)2. 控制寄存器 2(USART_CR2)3. 控制寄存器 3(USART_CR3)4. 波特率寄存器(USART_BRR)5. 保护时间和预分频器寄存器(USART_GTP…

嵌入式笔记4.3 异常和中断详解

目录一、异常和中断的简介1. 外设中断处理流程2. 中断处理与异常处理3. 支持的异常和中断数量二、异常类型三、中断管理简介四、优先级定义五、向量表和向量表重定位六、中断输入和挂起行为七、异常流程简介1. 接受异常请求2. 异常进人流程3. 执行异常处理4. 异常返回八、中断控…

学习3:scrapy请求对象、模拟登录、POST请求、管道的使用、crawlspider爬虫类

请求对象 请求对象参数 scrapy.Request(url[],callback,method"GET",headers,body,cookies,meta,dont_filterFalse)callback 表示当前的url响应交给那个函数去处理method 指定请求方式headers 接受一个字典,其中不包括cookiesbody 接收json字符串&#…

数字旅游以科技创新为核心:推动旅游服务的智能化、精准化、个性化,为游客提供更加贴心、专业、高效的旅游服务

目录 一、引言 二、数字旅游以科技创新推动旅游服务智能化 1、智能化技术的应用 2、提升旅游服务的效率和质量 三、数字旅游以科技创新推动旅游服务精准化 1、精准化需求的识别与满足 2、精准化营销与推广 四、数字旅游以科技创新推动旅游服务个性化 1、个性化服务的创…

HTUCTF2024 河南师范大学招新赛

CRYPTO easyMath 题目 中国古代有很多人同名譬如同样叫孙子,有的人会兵法,有的人会数学你能帮我求解出这道题的答案吗?请开启容器后下载对应输出文件难度:简单 from secret import flag from Crypto.Util.number import *def s2n(string):return int(string.encode("u…

2024 年 5 月 1 日 周三 小雨 冷(384 字)

正文祖父见到我和见长,第一句话是好久都没看到我们的孙子了。然后第二句话直接把我们俩都干懵了。“你们有没有阿托品啊?”我第一反应是懵,第二反应是想笑。上哪儿给你找这种处方药去…… 这种 M 受体阻断剂管得还严,严重有机磷中毒的时候,一掰就是几十支。而且这药不是最…

安装库后JupyterLab一直报ModuleNotFoundError问题解决

背景: 先安装的Python3.10,安装在默认路径: C:\Users\#用户名省略#\AppData\Local\Programs\Python\Python310\ 后安装的Anaconda,更改过路径在D盘: D:\ProgramData\anaconda3 此时C盘Python安装路径下Scripts文件…

linux搭建个人博客wordpress(LNMP)

目录 准备阶段: 1.部署LNMP环境 2.配置数据库 3.上线WordPress博客平台 4.来到web界面安装博客平台 5.WordPress博客平台优化 总结: 利用LNMPWordPress搭建博客网站平台 WordPress是一款使用PHP语言开发的博客平台 1.易用性高:操作简单…

linuxI2C驱动核心梳理

参考文章《linux设备驱动开发详解》第15章 【linux iic子系统】i2c整体框图【精髓部分】(五)_bus_for_each_drv-CSDN博客 linux设备驱动程序——i2c总线的添加与实现_如何填充i2c_client-CSDN博客 【linux iic子系统】i2c设备与驱动匹配过程(三)_i2c_add_driver 如何和clen…