使用vscode调试c++、python、torchrun、deepspeed程序

目录

  • 调试模式
  • 启动(Launch)模式调试c++
    • launch.json
    • tasks.json
  • 附加(Attach)模式调试python
  • debug torchrun和deepspeed
    • launch.json
  • 参考

VSCode通过其强大的扩展生态系统和灵活的调试配置,为C++、Python以及特定工具链如TorchRun和DeepSpeed的调试提供了便捷的方式。通过合理配置和使用,你可以更加高效地进行程序开发和调试工作,极大地提升开发体验和效率。

在Visual Studio Code(VS Code)中调试c++和python程序,主要通过launch.json和tasks.json是两个重要的配置文件进行程序调试和任务管理。
launch.json用于配置调试会话,允许开发者自定义调试环境、设置断点和观察点、管理环境变量等。
tasks.json用于配置任务,实现自动化构建、测试、运行等操作,提高开发效率。
在这里插入图片描述

调试模式

在 VS Code 中,有两种主要的调试模式:启动(Launch)和附加(Attach),它们处理两种不同的工作流程和开发人员群体。根据你的工作流程,确定哪种类型的配置适合你的项目可能会让人困惑。

如果你来自浏览器开发者工具的背景,你可能不习惯“从你的工具中启动”,因为你的浏览器实例已经打开了。当你打开 DevTools 时,你只是在将 DevTools 附加到已打开的浏览器标签页上。另一方面,如果你来自服务器或桌面开发的背景,那么你的编辑器为你启动进程,并且编辑器自动将其调试器附加到新启动的进程上,这是相当正常的。

解释启动和附加之间的最佳方法是,将启动配置视为一个食谱,用于说明如何在 VS Code 附加到它之前以调试模式启动你的应用,而附加配置是一个食谱,用于说明如何将 VS Code 的调试器连接到已经在运行的应用或进程。

VS Code 的调试器通常支持以调试模式启动程序或将调试器附加到已经在调试模式下运行的程序。根据请求(附加或启动),需要不同的属性,而 VS Code 的 launch.json 验证和建议应该有助于这一点。

启动(Launch)模式调试c++

launch.json

// launch.json
{
   
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
   
            "name": "my_project",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}",
            "args": ["--arg","arg_value"],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}/build",
            "environment": [],
            "externalConsole":false,
            "MIMode": "gdb",
            "preLaunchTask":"build_project",
            "setupCommands": 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

初识Spring Cloud Gateway

文章目录 一、网关简介1.1 网关提出的背景1.2 网关在微服务中的位置1.3 网关的技术选型1.4 补充 二、Spring Cloud Gateway的简介2.1 核心概念:路由(Route)2.2 核心概念:断言(Predicate)2.3 核心概念&#…

手机文件管理软件哪个好?巧用文件命名分类工具,文件清晰醒目!

随着智能手机功能的日益强大,我们日常使用手机存储的文件也越来越多,如何高效地管理这些文件成为了许多人的需求。因此,手机文件管理软件应运而生,它们能够帮助我们更好地组织、查找和编辑手机中的文件。在众多手机文件管理软件中…

结构体(C保姆级讲解)

前言: 为什么会有结构体,结构体可以用来面熟一个复杂对象,我们知道C语言中有哪些数据类型,有整型,有浮点型,有字符型,但是在生活中,我们需要描述一些比较复杂的东西,比如…

Vitalik:Layer2 是以太坊社区文化的延伸

原文标题:《Layer 2s as cultural extensions of Ethereum》 撰文:Vitalik Buterin,以太坊联合创始人 编译:Chris,Techub News 在我最近关于 L1 和 L2 扩容差异的文章中,我最终得出的结论是, …

java——网络编程套接字

T04BF 👋专栏: 算法|JAVA|MySQL|C语言 🫵 今天你敲代码了吗 目录 2.网络编程套接字2.1 socket api2.2 TCP和UDP之间的区别有连接 vs 无连接可靠传输 vs 不可靠传输面向字节流vs面向数据报全双工 vs 半双工 2.3UDP数据报套接字编程UDP 回显服务器UDP客户端…

Mariadb操作命令指南

MariaDB简介 ​ 以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关! 数据库应用程序与主应用程序分开存在,并存储数据集合。 每个数据库都使用一个或多个API来创建,访问&#xf…

ch4网络层---计算机网络期末复习(持续更新中)

网络层概述 将分组从发送方主机传送到接收方主机 发送方将运输层数据段封装成分组 接收方将分组解封装后将数据段递交给运输层网络层协议存在于每台主机和路由器上 路由器检查所有经过它的IP分组的分组头 注意路由器只有3层(网络层、链路层、物理层) 网络层提供的服务 一…

ArcGIS教程(02):创建多模式网络数据集

启动“新建网络数据集”向导 命名网络并选择源要素类 输入网络数据集名称【ParisMultimodal_ND】,点击【下一页】 点击【全选】网络数据集中的要素类 点击【下一页】 设置连通性和高程策略 点击【连通性】 Metro_Entrances 的每个要素与街道要素类的折点重…

企业文件加密:保障知识产权与客户隐私

在数字化时代,企业文件的安全成为了保护知识产权和客户隐私的关键。随着网络攻击和数据泄露事件的日益增多,企业必须采取强有力的措施来确保其敏感信息的安全。文件加密技术作为一项重要的数据保护手段,对于维护企业的竞争力和客户信任至关重…

第八十三节 Java面向对象设计 - Java方法重载

Java面向对象设计 - Java方法重载 在同一类中具有多个具有相同名称的方法称为方法重载。 类中具有相同名称的方法可以是声明的方法,继承的方法或两者的组合。 重载方法必须具有不同数量的参数,不同类型的参数或两者。 方法的返回类型,访问…

数字孪生技术为何备受各行业青睐?

数字孪生技术近年来在各行业中受到越来越多的重视,这是因为它具备了显著的优势和广泛的应用前景。数字孪生是指利用数字化技术,在虚拟空间中创建一个与现实世界对应的虚拟模型,通过数据的实时交互和反馈,实现对物理实体的模拟和监…

3d模型移动中心点偏移太远怎么解决?---模大狮模型网

在3D建模和动画制作中,移动模型时确保中心点的准确性至关重要。然而,有时候在移动模型时,中心点可能会偏移得太远,导致操作不便甚至影响到后续的工作流程。本文将介绍在3D模型移动中心点偏移太远时的常见原因,并提供解…

Linux系统编程——动静态库

目录 一,关于动静态库 1.1 什么是库? 1.2 认识动静态库 1.3 动静态库特征 二,静态库 2.1 制作静态库 2.2 使用静态库 三,动态库 3.1 制作动态库 3.2 使用动态库一些问题 3.3 正确使用动态库三种方法 3.3.1 方法一&…

sprintboot中拦截器的使用

文章目录 1. 为什么要使用拦截器2.拦截器的注册3.创建一个登录拦截器 1. 为什么要使用拦截器 1.权限检查:进入程序判断是否登录,没有登录,直接返回跳转到登录界面 2.性能监控:通过拦截器在进入处理程序之前记录开始时间&#xff…

java家政上门系统源码,一套同城预约、上门服务的家政系统源码

一款同城预约、上门服务的家政系统源码,用户端、服务端、管理端各端相互依赖又相互独立,支持选择项目、选择服务人员的下单方式,支持多城市并且设置每个城市专属服务项目。 技术架构:java1.8springboot mysql htmlThymeleaf uni…

【AI+知识库问答】沉浸式体验了解 AI知识库问答fastGPT

之前写过一篇文章 【AI本地知识库】个人整理的几种常见本地知识库技术方案 , 由于当时主要是针对AI本地知识库, 所以没列fastGPT。 最近经常刷到fastGPT,这里单独水一篇。 FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,…

UML静态图-对象图

概述 静态图包含类图、对象图和包图的主要目的是在系统详细设计阶段,帮助系统设计人员以一种可视化的方式来理解系统的内部结构和代码结构,包括类的细节、类的属性和操作、类的依赖关系和调用关系、类的包和包的依赖关系。 对象图与类图之间的关系&…

centos7 openssh9.7p 制作rpm包

centos7 openssh9.7p 制作rpm包 下载源码包:通过git开源打包源码准备编译打包环境编译打包上传rpm包到需要更新的服务器,并更新 下载源码包: 一般只用ssh源码就可以了 cd /root wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p…

UI线程和工作线程

引用:windows程序员面试指南 工作线程 只处理逻辑的线程,例如:启动一个线程,用来做一个复杂的计算,计算完成之后,此线程就自动退出,这种线程称为工作线程 UI线程 Windows应用程序一般由窗口…

ST - 如何利用SCR轻松驱动AC/DC转换器启动?

过去十年,新装服务器的市场需求增长迅猛,2015到2022年复合年均增长率达到了11%。拉动市场增长的动力主要来自以下几个方面:首先,个人文件无纸化和企业办公数字化进程加快;其次,健康危机期间的居家办公&…