一文详解VScode来完成python与C++的单步调试
·
0. 简介
之前很多工作的单步调试都是在Clion或者Pycharm完成的。但是这个很多时候因为各种原因不太方便。为此我们尝试使用Vscode来完成相关的配置实现
1. C++环境配置
在vscode 官方网站上下载ubuntu 版本的vscode软件进行安装。
查看是否安装gcc 以及 g++
gcc -v
g++ -v
如果没有进行安装,则需要进行下载
sudo apt-get update
sudo apt-get install build-essential gdb
1.1 配置IntelliSense
在vscode 中配置该功能,十分的简单。只需要在Extension中添加C/C++插件即可。

1.2 生成.vscode 文件下的三个文件
1.2.1 生成tasks.json 文件
首先点击右上角的执行符号,选择Run C/C++ File。选择g++ build and debug active file作为系统中的指定的编译器。(如下两图所示)

然后就会生成.vscode以及对应的tasks.json了。tasks.json文件相当于vscode的.sh或.bat文件,用来记录一系列操作的宏,可以用来设置如何编译文件,如何运行文件,几乎.sh能干的都可以干。
{// 按下 Ctrl+Shift+B 会触发你的构建任务(即本tasks.json文件), 可以用这个指令/按键来单独确认tasks.json是否有问题
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ 生成活动文件",
"command": "/usr/bin/g++",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",// 对应下面的options中的cwd所指定的那个目录下的文件.如果还有其他的.cpp文件,也需要填写到此处
"-o",
"${fileDirname}/${fileBasenameNoExtension}"//生成的用于调试的可执行程序的完整路径
],
"options": {
"cwd": "${fileDirname}" // .cpp文件所在的目录路径
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
1.2.2 launch.json
然后点击添加调试的配置文件,就可以生成launch.json文件了

{
"configurations": [// 配置数组,每个元素定义了一个特定的调试配置。你可以设置多个配置来支持不同的调试场景(例如,不同的程序或不同的调试类型)。
{
"name": "C/C++: g++ 生成和调试活动文件",// 配置的显示名称,会出现在 VSCode 的调试启动配置菜单中。这里的名称表示这是使用 GDB 进行的调试启动配置
"type": "cppdbg",// 指定调试器类型。cppdbg 是 C/C++ 调试器的标识符,表示这个配置是用于调试 C 或 C++ 程序。
"request": "launch",// 指示调试会话的启动类型。launch 表示 VSCode 将启动并调试一个程序。另一种类型是 attach,表示附加到一个已经运行的进程。
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],,// 一个字符串数组,包含传递给程序的命令行参数
"stopAtEntry": false,// 指定调试器是否在程序入口点暂停。false 表示不在程序开始时自动停止。
"cwd": "${fileDirname}",// 设置程序的当前工作目录。${fileDirname} 是当前打开文件的目录路径.配置的和"program"中的目录一样即可,注意是目录
"environment": [],
"externalConsole": false,// 指定是否使用外部控制台窗口来运行调试程序。false 表示在 VSCode 的内部终端中运行
"MIMode": "gdb",// 指定调试器接口模式,gdb 表示使用 GNU Debugger。
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++ 生成活动文件", // 调试会话开始前执行的任务
"miDebuggerPath": "/usr/bin/gdb"
}
],
"version": "2.0.0"
}
/*
vscode配置文件(如 tasks.json 和 launch.json)中常用的变量:
${workspaceFolder} :代表你当前打开的工作区(Workspace)的根目录。如果你有多个工作区文件夹,它指的是当前活动文件所属的工作区文件夹的根目录
${file} :当前在编辑器中打开的文件的完整路径
${fileWorkspaceFolder} :当前打开文件所属的工作区文件夹路径
${fileDirname} :当前在编辑器中打开的文件所在的目录的路径
${fileBasename} : 当前在编辑器中打开的文件的基本文件名,包括文件扩展名。
${fileBasenameNoExtension} :当前在编辑器中打开的文件的基本文件名,但不包括文件扩展名
${fileExtname} :当前在编辑器中打开的文件的文件扩展名
${relativeFile} :当前打开文件相对于 ${workspaceFolder} 的路径
${relativeFileDirname} :当前打开文件的目录相对于 ${workspaceFolder} 的路径
${lineNumber} :当前编辑器光标所在的行号
${selectedText} :当前在编辑器中选中的文本
${execPath} :VSCode 可执行文件的路径
${workspaceFolderBasename}:在Visual Studio Code中打开的文件夹名
${cwd}:Task启动时的工作目录
${defaultBuildTask}:默认的Build Task的名字
${env:Name}:引用环境变量
${config:Name}:可以引用Visual Studio Code的设置项
${input:variableID}:传入输入变量
*/
1.2.3 c_cpp_properties.json
最后我们需要生成C/C++配置文件c_cpp_properties.json
Ctrl+Shift+P 然受搜索C/C++:Edit configurations(UI) 即生成该文件。

{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c17",
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
1.2.4 增加配置文件

2. Python环境配置
…详情请参照古月居
更多推荐



所有评论(0)