Visual Studio Code使用

news2024/12/23 8:18:32

目录

1.python的调试

2.c++的运行

方法1:

方法2:

3.c++的调试

3.1调试方法一:先生成执行文件,再调试

 3.2调试方法二:同时生成执行文件,调试

4.tasks.json 与launch.json文件的参考

4.1C++生成执行文件tasks.json文件的参考

4.2调试文件launch.json的参考

4.3附录:vs code 中变量解释


注意:VScode中每修改以此文件要Ctrl + S 进行保存


简单代码的调试与运行点击左上角的“运行”—>"启动调试"或者“以非调试模式运行”

或者右上角的小三角,选择调试或运行


1.python的调试

点最右边的调试按钮,生成launch.json

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        //python 调试
        {
            "name": "Python 调试程序: 当前文件",        //调试的名字
            "type": "debugpy",
            "request": "launch",
            // "program": "${file}",
            "program": "/home/rui/VScode/python1.py",  //要调试的文件路径
            "console": "integratedTerminal",
            "justMyCode": true      //是否只调试我们写的代码,如果设为false,表示可以进入第三方库(如pytorch中的库)进行调试         
        
        }
    ]
}

将 launch.json文件中的program设置为要调试的文件路径,点击右侧上方的绿色调试按钮即可调试

注意:绿色按钮旁边的调试可以选择,如选择c++的调试

2.c++的运行

方法1:

 c++文件写好之后,要先生成可执行文件,在终端输入:

g++ main.cpp -o main

//其中main.app为文件名,-o表示输出,main表示输出的可执行文件的文件名

 生成可执行文件后,将可执行文件的路径输入终端,即可执行

方法2:

点击左上角 “终端” —>“运行生成任务”,出来上述界面,选择第一行右边的齿轮,生成执行文件tasks.json,如下

{
	"version": "2.0.0",
	"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": "build",
			"detail": "编译器: /usr/bin/g++"
		}
	]
}

生成tasks.json 文件后,再次点击左上角 “终端” —>“运行生成任务”,即可在指定路径下生成可执行文件,将执行文件的路径输入终端,即可运行。

3.c++的调试

 先生成launch.json文件,点击右下角蓝色的添加配置,选择第二行C/C++: (gdb) 启动,生成c++的launch.json调试文件,如下图

3.1调试方法一:先生成执行文件,再调试

首先生成执行文件(见第2节C++的运行),然后将launch.json调试文件中的program路径直接改为执行文件的路径,如下,选择对应的调试名称,点击开始调试

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "/home/rui/VScode/main",  //改为执行文件的路径
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }


    ]
}

 3.2调试方法二:同时生成执行文件,调试

 如第二节方法2所示,先生成调试文件tasks.json,如下

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "C/C++: g++ 生成活动文件",
			"command": "/usr/bin/g++",
			"args": [
				"-fdiagnostics-color=always",
				"-g",
				"${file}",      //要生成的文件本身
				"-o",
				"${workspaceFolder}/release/${fileBasenameNoExtension}"  //生成的可执行文件的路径,可以修改
			],
			"options": {
				"cwd": "${fileDirname}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": "build",
			"detail": "编译器: /usr/bin/g++"
		}
	]
}

接下来,生成launch.json调试文件,修改launch.json调试文件的内容,如下所示

主要修改内容:

1.在configurations中添加 "preLaunchTask",内容设置为设置为tasks.json中的label,

   即"preLaunchTask":  "C/C++: g++ 生成活动文件",该行表示此launch.json调试文件可以生    成执行文件

2."program"设置为与tasks.json的program一致,即生成可执行文件的路径,不要设置为

    "$ {fileDirname}/${fileBasenameNoExtension}",因为launch.json文件与tasks.json文件的      路径不同,对应的$ {fileDirname}不同,设置为"${workspaceFolder}/release/$                      {fileBasenameNoExtension}"即可

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/release/${fileBasenameNoExtension}",  //与tasks.json的program一致
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "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":  "C/C++: g++ 生成活动文件",    //设置为tasks.json中的label
        }

    ]
}

 然后点击绿色调试按钮,开始调试,注意要点到要调试的文件界面,如调试main.cpp文件,在主界面要点到main.cpp文件,如下图所示

4.tasks.json 与launch.json文件的参考

4.1C++生成执行文件tasks.json文件的参考

{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "cppbuild",
      "label": "C/C++: g++ 生成活动文件",
      "command": "/usr/bin/g++", // g++的路径
      "args": [
        "-fdiagnostics-color=always", // 颜色
        "-g",  // 调试信息
        "-Wall", // 开启所有警告
        "-std=c++14", // c++14标准
        "${file}", // 文件本身,仅适用于C++基础知识教学,无法同时编译所有文件
        // "${fileDirname}/*.cpp", // 文件所在的文件夹路径下所有cpp文件
        "-o", // 输出
        "${workspaceFolder}/release/${fileBasenameNoExtension}" // 文件所在的文件夹路径/release/当前文件的文件名,不带后缀
      ],
      "options": {
        "cwd": "${fileDirname}" // 文件所在的文件夹路径
      },
      "problemMatcher": [
        "$gcc"
      ],
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "detail": "编译器: /usr/bin/g++"
    }
  ]
}

4.2调试文件launch.json的参考

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg", // C++调试
            "request": "launch",
            "program": "${workspaceFolder}/release/${fileBasenameNoExtension}",  // 文件所在的文件夹路径/release/当前文件的文件名,不带后缀
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}", // 文件所在的文件夹路径
            "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": "C/C++: g++ 生成活动文件" // tasks.json的label
        },
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}", // 当前文件
            // "program": "demo.py", // 指定文件
            "console": "integratedTerminal",
            "justMyCode": true // false表示可以进入第三方库(如Pytorch)里进行调试
        }
    ]
}

4.3附录:vs code 中变量解释

以:/home/Coding/Test/.vscode/tasks.json 路径为例

${workspaceFolder} :表示当前workspace文件夹路径,也即/home/Coding/Test
${workspaceRootFolderName}:表示workspace的文件夹名,也即Test
${file}:文件自身的绝对路径,也即/home/Coding/Test/.vscode/tasks.json
${relativeFile}:文件在workspace中的路径,也即.vscode/tasks.json
${fileBasenameNoExtension}:当前文件的文件名,不带后缀,也即tasks
${fileBasename}:当前文件的文件名,tasks.json
${fileDirname}:文件所在的文件夹路径,也即/home/Coding/Test/.vscode
${fileExtname}:当前文件的后缀,也即.json
${lineNumber}:当前文件光标所在的行号
${env:PATH}:系统中的环境变量

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

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

相关文章

linux之进程通信

目录 一、进程通信介绍 1.目的 2.发展 3.进程通信是什么,怎么通信? 二、管道 1.介绍 2.匿名管道 1.单向通信管道原理 2.代码实现 3.管道特征 4.管道的四种情况 5.管道的应用场景 使用管道实现一个简易版本的进程池 3.命名管道 1.思考 2.…

燃冬之yum、vim和你

了解了很多指令和权限,搞点真枪实弹来瞅瞅 学Linux不是天天就在那掰扯指令玩,也不是就研究那个权限 准备好迎接Linux相关工具的使用了么码农桑~ yum 软件包 什么是软件包呢? 首先来举个生活中常见点的例子:比如我的手机是华为…

PLC无线通讯技术在汽车喷涂车间机械手臂上的应用

一、项目背景 在汽车生产装配工艺中,机械臂目前已经广泛地应用于装配、搬运等工业生产中,在机械臂系列产品中,汽车喷漆自动控制喷涂机械装置以其独特的优势,能够根据油漆喷涂量的大小,严格控制喷嘴与喷漆面之间距离等…

【函数式接口使用✈️✈️】配合策略模式实现文件处理的案例

目录 🍸前言 🍻一、功能描述 🍺二、面向对象设计模式 🍹三、策略模式 🍦四、策略 VS 面向对象 🍨章末 🍸前言 小伙伴们大家好,上周初步了解了下函数式接口,Consume…

「最没存在感」港姐冠军入行10年不受捧,与相恋4年男友分手

昨日(4月21日)一众歌手艺人齐集红馆举行《全港运动全城跃动第九届全港运动会开幕礼》录影,TVB亦派出不少的歌手艺人小花表演。其中一部分是邵珮诗与黄婧灵大跳拉丁舞,同属身材丰满的二人跳起上来视觉极夸张。 而平常经常露出姣好身…

powershell@命令行提示符样式配置自定义@pwsh重写prompt显示电量内存时间等信息

文章目录 abstract流行的powershell prompt模块示例 powershell原生修改Prompt函数配置文档Prompt命令来自哪里 简单修改带上电量和时间的Prompt 复杂修改预览FAQ:没有必要修改相关仓库地址样式选择平衡样式花哨样式响应性能 小结 abstract 在 PowerShell 中,可以通…

【git】git ignore如何添加core/config.py忽略

在Git中,.gitignore文件用于指定不被Git追踪的文件和文件夹。要添加core/config.py文件到.gitignore中,你需要编辑.gitignore文件并添加以下行: core/config.py这行表示Git应该忽略名为config.py的文件,它位于core目录下。确保在…

Codeforces Round 821 (Div. 2) D2. Zero-One

题目 #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e5 5, inf 1e18, maxm 4e4 5; const int N 1e6;c…

vue项目前端axios跨域请求处理问题

在我的服务器里面新建了一个txt文档&#xff0c;但在vue项目里面对这个文档发起请求的时候因为是ip地址请求&#xff0c;跨域请求失败&#xff0c;在配置了vue.config.js的请求代理后得以解决 报错示例&#xff1a; 解决方法&#xff1a; 1、在vue.config.js中配置跨越请求代…

microk8s拉取pause镜像卡住

前几天嫌服务器上镜像太多占空间&#xff0c;全部删掉了&#xff0c;今天看到 microk8s 更新了 1.30 版本&#xff0c;果断更新&#xff0c;结果集群跑不起来了。 先通过 microk8s.kubectl get pods --all-namespaces 命令看看 pod 状态。 如上图可以看到&#xff0c;所有的业…

【触摸案例-触摸事件介绍 Objective-C语言】

一、触摸事件 1.接下来,我们来说这个,触摸事件, iOS当中的事件,可以分为三大类: 1)触摸事件 2)加速计事件 3)远程控制事件 事件呢,这个里面呢,使用app的过程当中呢,产生各种各样的事件,事件呢,分为三大类,在iOS里边儿啊,分为三大类,首先,有一个叫做触摸事…

NLP大模型的训练

NLP模型的训练主要分成两步&#xff1a; 1.先进行通用任务的训练&#xff1b;无监督的样本是无穷无尽的&#xff1b; 这里列举两种&#xff1a;MLM和NSP,NSP由于在某些论文中被证明是无效的&#xff0c;所以用的少&#xff1b; MLM: 接下来会在特定任务上进行finetune>su…

Nacos分布式配置中心

<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 https://…

社交巨头与去中心化:解析Facebook在区块链的角色

在数字化时代&#xff0c;社交媒体已经成为人们日常生活中不可或缺的一部分。作为全球最大的社交媒体平台&#xff0c;Facebook 在社交领域的影响力无可置疑。然而&#xff0c;随着区块链技术的崛起&#xff0c;Facebook 也开始探索如何将这一技术应用于其平台&#xff0c;以适…

【无监督+自然语言】GPT,GPT-2,GPT-3 方法概述 (Generative Pre-Traning)

主要参考 【GPT&#xff0c;GPT-2&#xff0c;GPT-3 论文精读【李沐论文精读】-2022.03.04】 https://www.bilibili.com/video/BV1AF411b7xQ/ 大语言模型综述&#xff1a; http://t.csdnimg.cn/4obR4 发展节点 2017.06 Transformer: 所有大语言模型LLMs的基础结构 , Attent…

windows服务器iis系统部署https

源地址&#xff1a;https://www.ctvol.com/seoomethods/1418785.html https是网页常用的一种网络安全机制&#xff0c;在部署其他服务器https&#xff0c;我们在前面文章中已经提到过。下面我们来说说windows服务器iis系统部署https步骤&#xff1a; 1、到服务提供商下载所需…

WPF2022终结版系列课程笔记 1 WPF 基本布局

本笔记为B站 微软系列技术教程 WPF项目实战合集(2022终结版) 项目记录 WPF 基本布局 WPF布局原则 一个窗口中只能包含一个元素 不应显示设置元素尺寸 不应使用坐标设置元素的位置 可以嵌套布局容器 WPF布局容器 StackPanel: 水平或垂直排列元素、Orientation属性分别: Hor…

森林消防装备:高压消防接力水泵/恒峰智慧科技

在广袤无垠的森林中&#xff0c;每一份绿色都是大自然赋予我们的宝贵财富。然而&#xff0c;这些美丽的绿色也可能因为一场突如其来的火灾而被瞬间吞噬。为了保护这片生命的绿洲&#xff0c;我们需要一种高效、可靠的消防装备——高压消防接力水泵。 这款森林消防装备采用本田汽…

Hadoop3:HDFS、YARN、MapReduce三部分的架构概述及三者间关系(Hadoop入门必须记住的内容)

一、HDFS架构概述 Hadoop Distributed File System&#xff0c;简称HDFS&#xff0c;是一个分布式文件系统。 1&#xff09;NameNode(nn)&#xff1a;存储文件的元数据&#xff0c;如文件名&#xff0c;文件目录结构&#xff0c;文件属性&#xff08;生成时间、副本数、文件…

Linux 系统IO函数之stat、lstat函数

1、stat函数 要点&#xff1a; int stat(const char *pathname, struct stat *statbuf); 作用&#xff1a;查看文件的信息 man 2 stat/return value1、stat结构体&#xff1a; 2、sturct stat 结构体中 st_mode 的含义&#xff08;文件的类型和存取的权限&#xff09;: st_mo…