windows 10上使用vscode编译运行和调试C/C++

### 配置 VSCode 中的 GDB 调试器以调试 C/C++ 程序 在 Visual Studio Code 中配置 GDB 调试器以调试 C/C++ 程序,需要完成以下几个关键步骤: #### 1. 安装必要的调试插件 为了支持 GDB 调试,需要安装 Microsoft 提供的 `C/C++` 插件(`ms-vscode.cpptools`)。该插件提供了对 GDB LLDB 调试器的集成支持,并允许用户通过 `launch.json` 文件配置调试器参数[^1]。 #### 2. 准备可执行文件调试信息 在调试 C/C++ 程序之前,确保程序是使用 `-g` 参数编译的,以便生成的可执行文件包含调试信息。例如,使用 `g++` 或 `gcc` 编译时可以添加 `-g` 选项: ```bash gcc -g main.c -o main ``` 如果程序涉及跨平台调试(例如使用 `mips-linux-gdb`),需要确保调试器路径可执行文件匹配,并将对应的 `gdbserver` 可执行文件(如 `mips-linux-gdbserver`)部署到目标设备上[^1]。 #### 3. 配置 `launch.json` 文件 在项目根目录下的 `.vscode` 文件夹中创建 `launch.json` 文件,并定义 GDB 调试器的配置。以下是一个典型的 GDB 调试配置示例: ```json { "version": "0.2.0", "configurations": [ { "name": "C++ Debug", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/main", "args": [], "stopAtEntry": true, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "/usr/bin/gdb" } ] } ``` 如果程序源文件路径与编译时的路径不一致,可以通过 `cwd` 参数指定源文件所在的目录。GDB 在找不到源文件时会根据 `cwd` 设置的路径查找对应文件[^2]。 #### 4. 启动调试会话 打开 VSCode 中的“运行调试”侧边栏,选择配置的调试器(如“C++ Debug”),然后点击“启动调试”按钮。程序将在入口点暂停执行,允许用户设置断点、单步执行、查看变量值等操作。 #### 5. 使用 GDB Server 进行远程调试 如果目标程序运行在远程设备上,可以使用 `gdbserver` 进行调试。在远程设备上启动 `gdbserver`,并指定程序端口: ```bash mips-linux-gdbserver :1234 ./main ``` 在 `launch.json` 中配置远程调试参数,例如: ```json { "name": "C++ Remote Debug", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/main", "args": [], "stopAtEntry": true, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerServerAddress": "192.168.1.100:1234", "miDebuggerPath": "/usr/bin/gdb" } ``` #### 6. 调试功能使用技巧 - **断点设置**:在代码编辑器左侧的空白栏点击,可以设置或删除断点。 - **变量查看**:在调试过程中,将鼠标悬停在变量上可以查看其当前值,也可以在“变量”窗口中查看更详细的信息。 - **调用栈**:调试器暂停时,可以在“调用栈”窗口中查看当前执行路径。 - **控制台输出**:程序的输出将显示在“调试控制台”或“集成终端”中,具体取决于 `launch.json` 中的配置。 通过上述配置操作,用户可以在 Visual Studio Code 中使用 GDB 调试器对 C/C++ 程序进行高效调试,包括本地调试远程调试场景。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值