Visual Studio Code使用

目录

1.python的调试

2.c++的运行

方法1:

方法2:

3.c++的调试

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

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

[4.tasks.json 与launch.json文件的参考](#4.tasks.json 与launch.json文件的参考)

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

4.2调试文件launch.json的参考

[4.3附录:vs code 中变量解释](#4.3附录:vs code 中变量解释)


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


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

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


1.python的调试

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

cpp 复制代码
{
    // 使用 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++文件写好之后,要先生成可执行文件,在终端输入:

cpp 复制代码
g++ main.cpp -o main

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

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

方法2:

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

cpp 复制代码
{
	"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路径直接改为执行文件的路径,如下,选择对应的调试名称,点击开始调试

cpp 复制代码
{
    // 使用 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,如下

cpp 复制代码
{
	"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}"即可

cpp 复制代码
{
    // 使用 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文件的参考

bash 复制代码
{
  "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的参考

bash 复制代码
{
    // 使用 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 中变量解释

bash 复制代码
以:/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}:系统中的环境变量
相关推荐
小林想被监督学习4 小时前
idea怎么打开两个窗口,运行两个项目
java·ide·intellij-idea
HoneyMoose4 小时前
IDEA 2024.3 版本更新主要功能介绍
java·ide·intellij-idea
PigeonGuan6 小时前
【jupyter】linux服务器怎么使用jupyter
linux·ide·jupyter
小狮子安度因7 小时前
PyQt的安装和再PyCharm中的配置
ide·pycharm·pyqt
VernonJsn10 小时前
visual studio 2005的MFC各种线程函数之间的调用关系
ide·mfc·visual studio
戎梓漩10 小时前
windows下安装curl,并集成到visual studio
ide·windows·visual studio
nbsaas-boot12 小时前
如何利用ChatGPT加速开发与学习:以BPMN编辑器为例
学习·chatgpt·编辑器
一棵开花的树,枝芽无限靠近你13 小时前
【PPTist】添加PPT模版
前端·学习·编辑器·html
热爱生活的五柒14 小时前
vscode利用ofExtensions插件可以调试单进程Openfoam,但是不能调试mpi多进程案例
ide·vscode·编辑器
小陈phd14 小时前
Vscode LinuxC++环境配置
linux·c++·vscode