vscode 配置gdb调试

 

1. VSCode 中进行 C++ 相关的编译和调试

1.1 c_cpp_properties.json - 编译环境相关的设置

1.2 task.json - 编译参数设置

1.3 launch.json - 调试相关的参数

 VSCode 中进行 C++ 相关的编译和调试

1.1 c_cpp_properties.json - 编译环境相关的设置

  该文件用于指定一般的编译环境,包括头文件路径,编译器的路径等。通过 Ctrl + Shift + p 打开命令行,键入关键字 "C++",在下拉菜单中选择 "C/C++ Edit configuration",系统即自动在 .vscode 目录下创建 c_cpp_properties.json 文件,供用户进行编译方面的环境配置。默认的配置文件内容如下所示。

{
    "configurations": [
        {
            "name": "Linux",              //环境名
            "includePath": [
                "${workspaceFolder}/**"   //指定头文件路径,这里指定的是当前工作目录,如有需要在后面添加,添加方式是加入 "/to/path" 格式的路径
            ],
            "defines": [],
            "compilerPath": "/usr/bin/g++",   //编译器的路径,可根据自己的安装情况进行设置
            "cStandard": "c11",
            "cppStandard": "c++17",       //设置使用的 C/C++ 标准
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}

上述配置文件中键的值一般已默认生成,若在开发时有所变动,直接修改上述值即可。

1.2 task.json - 编译参数设置(自己写makefile比较好不建议使用这个玩意)

  该文件用于指定程序的编译规则,即如何将源文件编译为可执行程序。通过 Ctrl + Shift + p 打开命令行,键入关键字 "task",并在下拉菜单中选择 Tasks: Configure Default Build Task -> Create tassk.json file from template -> Others ,系统即自动在 .vscode 目录下创建 task.json 文件( 基础模版 ),供用户设置具体的编译规则。

  注意此时仅生成了一个 task.json 的简化模板,修改该文件中 label 键的值,再打开命令行,选择 Tasks:Configure Default Build Task 选项,此时修改后的 label 名字会出现在选项栏中,此时选中该 label的名字,则对应的 task.json 文件会发生改变,并被设置为默认编译对象( 即执行命令 Tasks: Run Build Tasks 时默认执行的是该 task.json 文件对应的编译 ),其大致格式如下所示。用户需要根据实际情况对其中的键值进行修改。

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build hello world",       //当前编译任务的名字
      "type": "shell",
      "command": "g++",                   //编译时执行的程序
      "args": ["-g", "-o", "helloworld", "helloworld.cpp"],    //传递给 command 的参数,也就是编译参数
      "group": {
        "kind": "build",
        "isDefault": true                 //为 True 时,用户可以通过 Ctrl+Shift+B 直接运行编译任务 
      }
    }
  ]
}上述文件中,通过 command 选项指定编译运行的程序,通过 args 选项给定了传递给编译程序的参数,当 isDefault 为 True 时(默认),用户使用 Ctrl+Shift+b 即可直接运行编译过程,或者也可以通过 Ctrl+Shift+p 打开命令行,选择 Tasks:Run Build Task 运行上述编译过程。( 从上述过程可以看出,tasks.json 规定了具体的执行编译过程的程序,也就是说实际上可以通过绝对路径来给出 command 进而无视 c_cpp_properties.json 中的 compilerPath 路径 )

  在编译成功后,可通过命令行运行编译成功的可执行程序。

1.3 launch.json - 调试相关的参数

这个非常好,修改这个就不需要自己敲打gdb指令进行调试,非常方便

  该文件主要与程序的调试相关。用户可通过 Ctrl+Shift+p 打开命令行,键入关键字 "launch",选择 "Debug:Open launch.json" -> "C++(GDB/LLDB)",即可打开调试的配置文件 launch.json。该文件设置 VScode 在调试时的基本内容和要求.在配置好 launch.json 文件后, 按 F5 即可进入调试模式。launch.json 文件的基本选项如下所示。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/helloworld",        //可执行文件的完整路径,文件名与 build.json 中生成的可执行文件名保持一致
            "args": [],
            "stopAtEntry": false,           //是否在 main 函数处暂定执行
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,        //在打开外部终端执行程序,而不是在 VSCode 的控制台中运行
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

下面的本人的launch configure:

{
    // 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}/bin/myapp",    //当前目录下编译后的可执行文件
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",    //表示当前目录
            "environment": [],
            "externalConsole": false, // 在vscode自带的终端中运行,不打开外部终端
            "MIMode": "gdb",    //用gdb来debug
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "make"  //在执行debug hello world前,先执行build hello world这个task,看第4节
        }
    ]
}

 

       在上述文件配置好后,执行Makefile,编译成可执行的文件后,用户通过 F5 即可进入调试模式。注意,只有生成可执行程序时加入了编译选项 -g ( 如本例中,build.json 文件中的 args 部分包括 -g 选项 ),上述可执行文件才可以通过 gdb 进行调试。

  • 4
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在VSCode配置gdb调试,您需要进行以下步骤: 1. 首先,在VSCode的扩展商店中搜索并安装"C/C++"扩展。这个扩展提供了对C和C++的语法高亮、代码补全和调试支持。 2. 接下来,打开您的项目文件夹,并在项目根目录下创建一个名为".vscode"的文件夹(如果还没有的话)。 3. 在".vscode"文件夹中创建一个名为"launch.json"的文件。这个文件用于配置调试器的参数。 4. 在"launch.json"文件中,将以下代码粘贴进去: ``` { "version": "0.2.0", "configurations": [ { "name": "gdb", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/your_program", // 替换成你的可执行程序路径 "args": [], // 如果需要传递命令行参数,可以在这里添加 "cwd": "${workspaceFolder}", "MIMode": "gdb", "miDebuggerPath": "gdb", // 如果gdb不在系统的PATH中,需要指定gdb的路径 "preLaunchTask": "build" // 如果需要在调试前进行编译,可以指定一个构建任务 } ] } ``` 5. 然后,在您的项目中执行Makefile,将源代码编译成可执行文件。确保在编译时加入了"-g"选项,以便在调试时能够获取到符号表信息。 6. 最后,在VSCode中按下F5键,即可开始调试您的程序。您可以通过设置断点、单步执行、查看变量等功能来进行调试。 请注意,上述代码中的"your_program"需要替换为您实际的可执行文件路径,"miDebuggerPath"如果您的系统中的gdb不在系统的PATH中,则需要指定gdb的路径。 通过以上步骤,您就可以在VSCode中成功配置gdb调试了。希望对您有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值