从C到C++:编程范式跃迁与核心机制解析
2026/8/3 19:18:59
VS Code 调试 C++ 的核心是配置launch.json(调试配置)和tasks.json(编译配置),结合官方 C/C++ 插件实现断点、单步执行、变量监控等功能。下面是完整且易懂的调试步骤:
g++ --version能显示版本)。新建debug_demo.cpp,写入带逻辑的测试代码(方便看到调试效果):
cpp
运行
#include <iostream> #include <vector> using namespace std; int main() { int a = 10; int b = 20; int sum = a + b; vector<int> nums = {1, 2, 3, 4}; for (int num : nums) { cout << "数字:" << num << endl; // 这里打个断点 } cout << "a + b = " << sum << endl; return 0; }编译是调试的前提,VS Code 需要知道如何编译你的代码:
Ctrl+Shift+B(或点击「终端→运行生成任务」)。tasks.json(存放在.vscode文件夹),无需修改,核心作用是告诉 VS Code 用g++编译当前文件,并生成带调试信息的可执行文件。这是调试的核心配置,告诉 VS Code 用什么调试器、调试哪个文件:
Ctrl+Shift+D)。launch.json,关键配置说明:json
{ "version": "0.2.0", "configurations": [ { "name": "g++.exe - 生成和调试活动文件", "type": "cppvsdbg", // Windows调试器,Linux/Mac为"cppvsdbg"改为"lldb" "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", // 要调试的可执行文件路径 "args": [], // 程序运行参数(无则空) "stopAtEntry": false, // 是否在程序入口(main函数)自动暂停 "cwd": "${fileDirname}", // 工作目录 "environment": [], "externalConsole": false, // 是否弹出外部终端(建议false,用VS Code内置终端) "MIMode": "gdb", "miDebuggerPath": "gdb.exe", // 调试器路径(MinGW已配环境变量则无需改) "preLaunchTask": "C/C++: g++.exe 生成活动文件", // 调试前先执行的编译任务(必须和tasks.json里的任务名一致) "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }cout << "数字:" << num << endl;这行打断点)。F5(或点击「运行和调试」面板的绿色三角按钮)。a=10、b=20、num随循环变化)。sum),实时监控其值。调试完成后,按Shift+F5停止,或点击调试工具栏的停止按钮即可。
launch.json中preLaunchTask的值,必须和tasks.json里的label完全一致(包括空格)。tasks.json中g++命令默认带-g参数,无需手动加),且代码已保存、重新编译。launch.json中添加"environment": [{"name": "LC_ALL", "value": "zh_CN.UTF-8"}](Windows)。tasks.json(编译)和launch.json(调试),且两者的任务名必须匹配;