赞
踩
目录
要说当前最流行的编辑器,VSCode 绝对可以数得着,越来越多的开发者倾向于使用 VSCode 进行开发。
随着越来越多样的开发工具的出现,对于调试程序,更多的人使用可视化的方式调试,更少的使用 gdb 直接调试,而且 gdb 并不是那么直观,需要记住许多的命令。这篇文章介绍下 VSCode 来 debug C/C++程序,真是一款非常好用的编辑器,强烈推荐!(Windows 和 Linux 都适合)
打开 VSCode,在 VSCode 中安装语言插件,点击左侧<扩展>,输入Chinese,点击安装,如下图所示:
还是在扩展中,输入 C,选择 C/C++ 安装,如下图所示:
本文 Linux 使用的是 CentOS 8,安装 gcc-c++,执行如下命令。
[root@bogon debug-C++]# yum install gcc-c++
因为后台使用的是 gdb,所以安装 gdb,如下所示:
[root@bogon debug-C++]# yum install gdb
依次点击菜单栏 <终端>,<配置任务>,<使用模板创建tasks.json>,<Others>,如下图所示:
出现一个 tasks.json 的 json 配置文件,重新配置 tasks.json 后如下所示:
- {
- // See https://go.microsoft.com/fwlink/?LinkId=733558
- // for the documentation about the tasks.json format
- "version": "2.0.0",
- "tasks": [
- {
- "label": "debug-C++", // 任务名称
- "type": "shell", // 表示使用 shell 命令执行
- "command": "g++", // 实际执行的命令
- "args": [ // 实际执行命令的参数,使用逗号分隔
- "-g", // -g 参数表示添加 debug 信息
- "-o", // -o 指定输出文件名称
- "main", // 输出文件名称
- "main.cpp" // 源文件
- ]
- }
- ]
- }
添加完成后,在左边资源管理器部分可以看到在 “.vscode” 目录下多了一个文件 tasks.json,如下图所示:
依次点击菜单栏<终端>,<添加配置>,<C++(GDB/LLDB)>,如下图所示:
PS: 如果出现如下错误,先生成带调试信息的可执行文件,使用鼠标选中可执行文件,然后再执行。
Cannot read property 'includes' of undefined
然后,出现文件 launch.json 文件,重新配置后如下所示:
- {
- // 使用 IntelliSense 了解相关属性。
- // 悬停以查看现有属性的描述。
- // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
- "version": "0.2.0",
- "configurations": [
- {
- "name": "debuge test", // 名称
- "type": "cppdbg",
- "request": "launch",
- "program": "${workspaceFolder}/main", //可执行文件的位置 ${workspaceFolder}:当前目录
- "args": [],
- "stopAtEntry": false,
- "cwd": "${workspaceFolder}",
- "environment": [],
- "externalConsole": false,
- "MIMode": "gdb",
- "setupCommands": [
- {
- "description": "为 gdb 启用整齐打印",
- "text": "-enable-pretty-printing",
- "ignoreFailures": true
- }
- ],
- "preLaunchTask": "debug-C++" // 重要:在调试之前启动的任务名称
- }
- ]
- }
经过上面的配置,所有的配置工作就完成了。
这里故意写了一个复杂一点的,如下所示:
- #include <iostream>
- using namespace std;
-
- void function1(int i, int j) {
- cout<<"function1"<<endl;
- cout<<"i = "<<i<<" j = "<<j<<endl;
- }
-
- int main() {
- int i = 1;
- int j = 2;
- function1(i, j);
- cout<<"Hello, World!"<<endl;
- i = 3;
- j = 5;
- function1(i, j);
- cout<<"Hello, World!"<<endl;
- return 0;
- }
点击 F5 (或依次点击菜单栏<运行>,<启动调试>),如下图所示:
其中,左侧可以显示变量、监视、调用堆栈、断点,右侧横条的按钮分别为:继续、单步跳过、单步调试、单步跳出、重启和停止。
经过上面的步骤,就可以通过 VSCode 调试 C/C++ 程序了,赶紧尝试一下吧!
[1] https://code.visualstudio.com/docs/editor/tasks#vscode
[2] https://code.visualstudio.com/docs/editor/debugging#_launch-configurations
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。