VSCode设置GDB

VSCode 设置 GDB 调试工具

调试 Linux 平台应用

这里需要注意的我们的在 CMake 编译可执行程序时,需要加设置DEBUG模式。
例如:

  1. 通过命令行的方式
cmake  -DCMAKE_BUILD_TYPE=Debug ..
  1. CMakeLists.txt 设置
set(CMAKE_BUILD_TYPE "Debug")

linux 下验证应用程序是否为 debug 版本:

readelf -S test | grep debug

其次我们还要在 Linux 上安装 GDB

apt-get update
apt-get install  gdb

VSCode 创建调试启动文件

【Run(Ctrl + Shift + D)】-> 【create a launch.json file】-> 【C++ (GDB/LLDB)】

然后设置launch.json文件。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/exec",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

这是 Visual Studio Code 的配置文件 launch.json 的内容,专门用于配置 C++调试器。这个文件告诉 VS Code 如何启动调试器以及调试器的行为。下面是文件中各个选项的含义(以下参数描述由 ChatGPT4 生成):

  • version: 指定了 launch 配置的版本号。这对于 VS Code 来说很重要,以便了解如何解析和使用配置文件。

  • configurations: 这是一个配置数组,每个配置都是一个可以启动的调试会话。在这个例子中,只有一个配置。

配置对象的属性:

  • name: 这是用户在选择调试配置时看到的名称,在这里是“(gdb) 启动”。这通常会在 VS Code 界面的调试启动配置下拉菜单中显示。

  • type: 表示调试器的类型,这里是 cppdbg,表明这是一个 C++的调试配置。

  • request: 指定调试会话的类型,这里是 launch,意味着 VS Code 将会启动一个新的调试会话。另一种可能的值是 attach,表示附加到一个已经运行的进程。

  • program: 指定了要调试的可执行文件的路径。${workspaceFolder}是一个变量,它会被替换为当前打开的工作区(项目)的根文件夹路径。这里假设可执行文件位于工作区的 build/exec 路径下。

  • args: 这是一个数组,包含传递给程序的命令行参数。在这个例子中,它是空的。

  • stopAtEntry: 如果设置为 true,则调试器会在程序入口点(通常是 main 函数)暂停。在这个例子中,它被设置为 false。

  • cwd: 表示当前工作目录,即程序启动时的目录。${workspaceFolder}表示程序将在工作区的根目录中启动。

  • environment: 这是一个数组,用于设置环境变量。数组中的每个元素都是一个包含 name 和 value 的对象。在这个例子中,该数组是空的。

  • externalConsole: 如果设置为 true,则程序将在新的控制台窗口中运行。这对于需要输入或查看控制台输出的程序很有用。在这个例子中,它被设置为 false,意味着输出将在 VS Code 的内置终端中显示。

  • MIMode: 指定了调试器接口,这里是 gdb,表示 GNU 调试器。

  • setupCommands: 这是一个数组,包含在启动调试会话时自动发送给调试器的命令。在这个例子中,只有一个命令-enable-pretty-printing,它指示 gdb 启用整齐打印功能,使得复杂的数据结构(如 C++ STL 容器)的输出更易于阅读。

  • description: 命令的描述,这里是“为 gdb 启用整齐打印”。

  • text: 要发送给调试器的实际命令文本。

  • ignoreFailures: 如果设置为 true,即使命令失败,调试器的启动也不会被阻止。在这里,它被设置为 true。

这个配置文件是为了使用 gdb 调试 C++程序时的 VS Code 设置。用户可以根据自己的需要修改这些设置。

posted @ 2024-04-15 09:27  SheepHuan  阅读(46)  评论(0编辑  收藏  举报