2024-06-28【C/C++】CMake启用调试 VScode gdb调试

  1. 在CMakeLists.txt文件头部添加
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")  #需要调试请打开此选项

然后使用添加指令后的CMakeLists.txt重新编译程序

  1. 点击虫子图标



    点击设置图标


如果已经创建launch.json文件会自动打开json文件,如果没有创建会自动新建一个空白launch.json文件
空白内容如下:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": []
}
  1. 填充用以调试的launch.json
    填充内容如下:
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/main.exe",  //待调试的可执行文件路径
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:/MinGW/bin/gdb.exe",  //用以调试的gdb路径
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            //"preLaunchTask": "C/C++: g++.exe build active file"
        }
    ]
}

对于新项目,新的编译环境,无脑修改program, miDebuggerPath对应值即可
此外在args中添加main函数的输入参数, 每个参数使用""包围,使用, 做分隔

  1. 如何调试
  • 先使用CMakeLists.txt编译好可执行程序
  • 在要调试的代码中打断点


  • 点击(gdb)启动
    程序会自动运行至断点处
  • 调试方法

    继续 F5:启动调试。若已经启动,则会运行到下一个断点停住
    逐过程 F10:单步跳过。即如果遇到函数,则不会进到这个函数里面
    单步调试 F11:单步执行。如果遇到函数,会进到这个函数里面
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容