目录
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}:系统中的环境变量