如何在 VSCode 中调试 cmake/make 项目?

Kev*_*vin 5 c++ debugging gdb g++ cmake

我正在制作一个项目,为了协助构建,我正在使用CMake.

但是,我注意到我无法调试。

这是我的launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug",
            "type": "gdb",
            "request": "launch",
            "target": "./build/bin/CHIP8",
            "cwd": "${workspaceRoot}",
            "preLaunchTask": "build"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

这是我的tasks.json:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "cd build && cmake .. && make"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我在网上找不到任何东西来帮助解决这个问题,所以我真的不知道从哪里开始。VSCode 文档有一个示例来调试他们使用 g++ 的地方,但我使用的是 make --- 所以我不知道该怎么做!

谢谢。

S.M*_*.M. 10

看来您构建了程序的发行版本。尝试构建程序的调试版本。

rm -r build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake --build .
Run Code Online (Sandbox Code Playgroud)

最好将调试和发布版本分开。

mkdir Debug
cd Debug
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake --build .
Run Code Online (Sandbox Code Playgroud)

适当更新launch.json:

{
    "version": "2.0.0",
    "configurations": [
        {
            "name": "Debug",
            "type": "cppgdb",
            "request": "launch",
            "target": "./Debug/bin/CHIP8",
            "cwd": "${workspaceRoot}",
            "preLaunchTask": "build"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

根据 VS Code 更新更新了“类型”。"type": "gdb"以前是