使用 VS Code 进行 gdb 调试

VS Code 版本信息:
在这里插入图片描述

安装以下插件:
在这里插入图片描述

点击 debug 图标 ,再点击 create a launch.json file 创建 launch.json 文件。
launch.json 文件用于配置和管理调试会话。这个文件定义了一系列参数,指导 VS Code 如何启动程序和附加调试器。
在这里插入图片描述

添加 启动或附加调试器 的配置,这次配置使用的是 “{} C/C++: (gdb) Launch” ,这些选项的含义在文章末尾处。
在这里插入图片描述

根据实际需要调整配置,这里之调整 program :
在这里插入图片描述
program 的值为将要 debug 的可执行程序路径,这里使用绝对路径亦可。

在源文件的代码处打断点:
在这里插入图片描述

按 F5 进行调试:
在这里插入图片描述
上图红框中的按键的作用,从左到右依次是:

  • 继续 / 暂停 F5
  • 跳过 F10
  • 跳入 F11
  • 跳出 Shift+F11
  • 重启 Ctrl+Shift+F5
  • 停止 Shift+F5

这次 launch.json 的具体内容如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/bin/simple_publisher",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "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
                }
            ]
        }
    ]
}

启动或附加调试器的配置项作用:
在这里插入图片描述
这些选项是在不同编程和调试环境中用于启动或附加调试器的配置。下面将解释每一个选项的作用:
C/C++ (GDB)

  • Attach:这个选项用于将GDB调试器附加到一个已经运行的进程上。这允许你调试一个已经启动的程序,而不是从头开始启动它。当你想要调试一个已经运行的进程,或者调试一个由其他方式(如系统启动脚本)启动的程序时,这个选项会非常有用12。
  • Launch:这个选项用于通过GDB启动一个新的C/C++程序进行调试。当你想要从头开始调试一个程序,并且控制它的启动过程时,你会使用这个选项1。

Chrome

  • Attach:对于Chrome浏览器,Attach选项可能用于将调试器附加到一个已经运行的Chrome进程上,以调试该进程中的JavaScript或其他代码。然而,请注意,Chrome的调试通常使用DevTools或其他工具,而不是直接使用GDB或LLDB。
  • Launch:在Chrome中,Launch可能指的是启动一个新的浏览器实例或标签页以进行调试。这通常是通过DevTools或其他工具来完成的,而不是直接通过调试器命令。

CodeLLDB
CodeLLDB是一个在Visual Studio Code等IDE中使用的LLDB调试器插件。

  • Attach by Name:这个选项允许你通过进程名附加到正在运行的进程。
  • Attach to PID:这个选项允许你通过进程ID(PID)附加到正在运行的进程。
  • Custom:这个选项可能允许你定义自定义的附加或启动选项。
  • Debug a Cargo Target 和 Debug Cargo Tests:这些选项特定于Rust语言,用于调试通过Cargo管理的Rust项目。Cargo是Rust的包管理器和构建工具。
  • Launch:这个选项用于通过LLDB启动一个新的程序进行调试。

Pipe Attach 和 Pipe Launch

  • Pipe Attach 和 Pipe Launch:这些选项可能指的是通过管道(pipe)机制来附加或启动调试会话。管道是一种在Unix和类Unix系统(如Linux和macOS)中用于进程间通信的机制。这些选项可能允许你通过特定的管道接口与调试器进行交互。然而,请注意,这些选项的具体实现和行为可能会因使用的调试器和IDE的不同而有所不同。

请注意,上述解释是基于对各个选项的一般理解和常见的调试器用法。具体的实现和行为可能会因使用的工具、IDE和操作系统的不同而有所变化。在使用这些选项时,建议查阅相关工具的文档或帮助资源以获取更详细和准确的信息。

参考:
gdb 调试入门(三):在 vscode 中使用 gdb 进行调试

  • 28
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值