vscode安装插件进行gdb调试

50184cc5b783492598603daa0dad5f1f.webp

 

准备工作:

1、代码

main.cpp

#include <iostream>

using namespace std;
// 抽象产品类
class Product {
public:
    virtual void operation() = 0;
};

// 具体产品A
class ConcreteProductA : public Product {
    public:
    void operation() override {
        cout << "ConcreteProductA operation" << endl;
    }
};
// 具体产品B
class ConcreteProductB : public Product {
    public:
    void operation() override {
        cout << "ConcreteProductB operation" << endl;
    }
};

class SimpleFactory {
    public:

    // 根据传入的参数创建不同类型的产品对象
    static Product *createProduct(int type) {
        switch (type) {
            case 1:
                return new ConcreteProductA();
            case 2:
                return new ConcreteProductB();
            default:
                return nullptr;
        }
    }
};


int main()
{
    // 创建产品A
    Product *productA = SimpleFactory::createProduct(1);
    productA->operation();

    // 创建产品B
    Product *productB = SimpleFactory::createProduct(2);
    productB->operation();

    delete productA;
    delete productB;

    return 0;
}

Makefile:

CC = g++
CFLAGS = -g -O0

all: main

main: main.cpp
	$(CC) $(CFLAGS) -o $@ $<

clean:
	rm -f main

2、安装vscode插件

Extensions for Visual Studio family of products | Visual Studio Marketplace

0e4af2505db5449ca6104a01d2b47260.png

e794bafcb8b4497ea6d87f13dcf6cf37.png

 

3、配置gdb调试环境相关信息

d01be3c2201c4c2c83f8a7d1f056ee22.png

launch.json

{
    // 使用 IntelliSense 了解相关属性。
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "cppdbg",
            "request": "launch",
            "name": "GDB",
            "program": "${workspaceFolder}/simpleFactory/main",
            "stopAtEntry": true,
            "args": [], // 程序参数
            "cwd": "${workspaceFolder}",
            "MIMode": "gdb",
            "setupCommands": [
                {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
                }
            ],
        }
    ]
}

make编译后启动程序

8b5261b394e641c0b78d6e433f1adae1.png

结果如下

ee3444a1a49e433fa951db8d0058db10.png

 

<think>好的,用户想了解如何在VSCode安装和使用GDB调试插件。首先,我需要回忆一下相关的知识。根据提供的引用,有几个关键点需要注意: 用户提到的引用[3]提到了使用Makefile配置调试选项,比如加上`-g`和`-O0`,这很重要,因为编译时需要生成调试信息。引用[4]提到了一个B站视频教程,可能对用户有帮助。另外,引用[1]和[2]涉及远程调试和查看内存时的错误,虽然用户现在的问题可能不需要远程调试,但可能需要处理类似的反汇编或变量读取问题。 接下来,整理步骤:首先安装插件,然后配置launch.json,编译程序时添加调试信息,最后使用调试功能。需要确保用户正确设置编译选项,否则可能导致调试信息缺失,如引用[2]中的错误。另外,远程调试的话,可能需要gdbserver,如引用[1]所述,但用户的问题可能主要是本地调试,不过可以稍微提一下。 用户可能需要详细的步骤说明,包括安装插件、配置文件和实际调试操作。同时,生成相关问题时要考虑用户可能遇到的后续问题,比如配置问题、断点使用、变量查看等。最后,确保回答符合格式要求,使用正确的中文表达,避免使用Markdown,行内公式用$符号,独立公式用$$,但这个问题可能不需要数学公式,所以可能不用涉及。但需要检查是否有遗漏的格式要求。</think>### VSCodeGDB调试插件安装与使用教程 在VScode中配置GDB调试需通过以下步骤实现: --- #### 1. **安装必要插件** - **C/C++扩展**:VSCode官方提供的必备插件,支持语法高亮、调试等功能[^4] - **CodeLLDB(可选)**:若需LLDB调试器支持(如macOS环境) --- #### 2. **配置调试环境** 1. 创建`launch.json`文件: - 按`F5`启动调试,选择`C++ (GDB/LLDB)`环境 - 选择`g++`生成活动文件,自动生成配置文件模板 2. 关键配置项示例: ```json { "version": "0.2.0", "configurations": [ { "name": "GDB Debug", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/main", // 可执行文件路径 "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "启用反汇编视图", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] } ``` --- #### 3. **编译调试版本程序** 在Makefile中添加调试参数: ```makefile CC = g++ CFLAGS = -g -O0 # -g生成调试符号,-O0禁用优化[^3] ``` --- #### 4. **调试操作指南** 1. **断点设置**:单击行号左侧区域 2. **变量监视**:在`WATCH`面板添加监视表达式 3. **内存查看**:在调试控制台输入`-exec x/8wx 0x地址` 4. **反汇编查看**:右键代码选择`反汇编`(注意可能需额外配置符号文件[^2]) --- #### 5. **远程调试配置(可选)** 1. 开发板端运行: ```bash gdbserver :1234 ./your_program # 引用[1]提到的gdbserver工具 ``` 2. 本地`launch.json`添加: ```json "miDebuggerPath": "/path/to/gdb", "miDebuggerServerAddress": "192.168.1.100:1234" ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值