在 VS Code 中调试 C++ 项目

选择调试器环境

从预定义的调试配置中进行选择,生成预定义launch.json文件,可能是空模板

复制代码
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            //设置为活动文件夹和活动文件名
            // "program": "${workspaceFolder}/leetcode100/06矩阵/a.out",  
            "program": "${fileDirname}/${fileBasenameNoExtension}",  

            //启动程序时传递给程序的命令行参数数组 
            "args": [],
            //默认不会添加任何断点,如果希望调试器在开始调试时停止在main方法,将stopAtEntry设置为true
            "stopAtEntry": true,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            //指示调试器将连接到gdb或lldb
            "MIMode": "gdb",
            //调试器的路径,如果没有指定,将在计算机路径变量中搜索调试器,取决于MIMODE
            "miDebuggerPath": "/usr/bin/gdb",
            //指定要传递给调试器的附加参数
            "miDebuggerArgs": "",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "Set Disassembly Flavor to Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }

    ]
}

举例

复制代码
#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main() {
    vector<string> msg {"hello", "world", "from", "vs code"};

    for (const string& word : msg) {
        cout << word << " "; 
    }
    cout << endl;
}

(base) daichang@daichang:~/Desktop/Algorithm-training/gdb$ g++ helloworld.cc -o helloworld

开始调试,使用键盘快捷键F5

在Debug Console 显示调试器已启动并正在运行的输出,在最后一个cout语句完成之前,调试控制台不会出现任何输出。因为需要换行符来刷新缓冲区

可以使用变量缓冲区中的set alue来修改变量值等

相关推荐
音草27 分钟前
C++ 继承详解:从概念到菱形继承
c++
weixin_3077791337 分钟前
C++代码实现MATLAB中的spectralcluster函数功能
开发语言·c++·算法·matlab
鸽鸽程序猿37 分钟前
【项目】【在线判题系统】c端:竞赛报名
c语言·开发语言
Wang's Blog41 分钟前
Java 项目实战: 交友项目 - 个人资料管理的需求分析与接口设计
java·开发语言·交友
1024奇点1 小时前
【仓颉语言入门 · 第二篇 第 8 课】
开发语言·数据库·ide·mysql·开源
gopher95111 小时前
RUST:序列化与反序列化 serde + derive 详解
开发语言·后端·rust
xiaoye-duck1 小时前
《C++ 项目:手写大模型接入 SDK》Trae IDE 开发环境搭建与依赖管理
c++·ide·语言模型
H.莓飛1 小时前
【Linux】自主 Shell
linux·运维·服务器·c语言·开发语言·visual studio
熊猫钓鱼>_>1 小时前
Kotlin Multiplatform for OpenHarmony 实战:kotlinx-coroutines 结构化并发适配
开发语言·kotlin·agent·harmonyos·openharmony·适配·华为云码道
沫璃染墨2 小时前
《Qt从零入门系列(十四):QThread多线程详解——从线程创建到客户端阻塞处理》
开发语言·c++·笔记·qt·ui·交互·线程