Linux GDB 用法-ChatGPT 4o 生成

在 Linux 上使用 Visual Studio Code (VSCode) 调试 C++ 代码时,可以借助 gdb(GNU Debugger)来进行断点调试。以下是详细步骤:


1. 安装环境和工具

安装 g++ 和 gdb

确保你的系统已经安装了编译器和调试工具:

sudo apt update
sudo apt install g++ gdb

安装 VSCode 和 C++ 扩展

  1. 打开 VSCode。
  2. 在扩展市场中搜索并安装 C++ 扩展 (C/C++ by Microsoft)。

2. 创建 C++ 项目和配置文件

创建工作目录和代码文件

在你的工作目录下创建一个简单的 C++ 文件,例如 main.cpp

#include <iostream>
using namespace std;

int main() {
    int a = 5;
    int b = 10;
    int sum = a + b;
    cout << "Sum: " << sum << endl;
    return 0;
}

编译代码

先使用 g++ 编译代码,生成可调试的可执行文件(需要 -g 参数):

g++ -g main.cpp -o main

3. 配置 VSCode 的调试环境

配置 launch.json

  1. 打开 运行和调试 (Ctrl+Shift+D)。
  2. 点击 创建 launch.json 文件,选择 C++ (GDB/LLDB)
  3. 修改生成的 launch.json 文件,内容如下:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/main", 
            "args": [], 
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false, 
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build", 
            "miDebuggerPath": "/usr/bin/gdb", 
            "internalConsoleOptions": "openOnSessionStart"
        }
    ]
}

配置 tasks.json(可选)

确保在调试前自动编译代码:

  1. .vscode 目录下创建或编辑 tasks.json 文件:
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "g++",
            "args": [
                "-g",
                "main.cpp",
                "-o",
                "main"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": ["$gcc"]
        }
    ]
}

4. 设置断点并运行调试

  1. 打开 main.cpp 文件,在你想要调试的行(如 int sum = a + b;)左侧点击,添加断点。
  2. 点击 运行和调试 或按 F5 以启动调试。
  3. 调试窗口将显示当前状态,你可以:
    • 使用 F10 逐步执行(Step Over)。
    • 使用 F11 进入函数(Step Into)。
    • 使用 Shift+F5 停止调试。

5. 常见调试操作

  • 查看变量:悬停在变量名上查看其值。
  • 监视变量:右键变量名并选择“添加到监视”。
  • 调用堆栈:查看当前调用的函数栈帧。
  • 断点管理:在调试面板中查看和管理断点。

6. 常见问题及解决

  1. “无法启动 gdb”:确保 gdb 已安装并且路径正确:

    which gdb
    
  2. 权限问题:如果遇到权限问题,请尝试使用 sudo 启动 VSCode。


通过以上步骤,你就可以在 Linux 上通过 VSCode 使用 gdb 对 C++ 代码进行调试了。如果还有其他问题,请告诉我!

posted @   SkyMaths  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示