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

时间:2018-03-31 01:38:12

标签: c++ debugging cmake gdb g++

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

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

这是我的launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug",
            "type": "gdb",
            "request": "launch",
            "target": "./build/bin/CHIP8",
            "cwd": "${workspaceRoot}",
            "preLaunchTask": "build"
        }
    ]
}

这是我的任务.json:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "cd build && cmake .. && make"
        }
    ]
}

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

感谢。

2 个答案:

答案 0 :(得分:1)

您似乎构建了程序的发布版本。尝试构建程序的调试版本。

rm -r build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make

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

mkdir Debug
cd Debug
cmake -DCMAKE_BUILD_TYPE=Debug ..
make

适当更新launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug",
            "type": "gdb",
            "request": "launch",
            "target": "./Debug/bin/CHIP8",
            "cwd": "${workspaceRoot}",
            "preLaunchTask": "build"
        }
    ]
}

答案 1 :(得分:0)

就我而言,即使我使用cmake -DCMAKE_BUILD_TYPE = Debug ..,它仍然无法工作,我需要在cmakefile中设置以下标志。

  

set(CMAKE_C_FLAGS_DEBUG“ -g -DDEBUG”)
  设置(CMAKE_CXX_FLAGS_DEBUG“ -g -DDEBUG”)