用vscode 和 cmake 调试 wsl 上的 c++项目

亡梦爱人 提交于 2020-10-06 00:53:40

 打开wsl,进入文件夹,运行以下命令:

code .

在 CMakeLists.txt 中设置 

 set CMAKE_BUILD_TYPE   "Debug"  )

配置 lauch.json,该文件用于执行编译好的文件(该文件位于 .vscode 中)

"version" "0.2.0" ,
     "configurations" : [
        {
             "name" "g++ - 生成和调试活动文件" ,
             "type" "cppdbg" ,
             "request" "launch" ,
           //目标执行文件
             "program" "${workspaceFolder}/build/hello" ,   
             "args" : [],
             "stopAtEntry" false ,
             "cwd" "${workspaceFolder}" ,
             "environment" : [],
             "externalConsole" false ,
             "MIMode" "gdb" ,
             "setupCommands" : [
                {
                     "description" "为 gdb 启用整齐打印" ,
                     "text" "-enable-pretty-printing" ,
                     "ignoreFailures" true
                }
            ],
             "preLaunchTask" "make" ,
             "miDebuggerPath" "/usr/bin/gdb"
        }
    ]

配置 tasks.json,用于编译,(该文件位于 .vscode 中)

{
     "tasks" : [
    {
             "label" "mkdir" ,
             "type" "shell" ,
             "command" : "mkdir" ,
             "args" : [ "-p" , "build" ],
             "options" : {
                 "cwd" "${workspaceFolder}"
            }
        },
        {
             "label" "cmake" ,
             "type" "shell" ,
             "command" : "cmake" ,
             "args" : [ ".." ],
             "options" : {
                 "cwd" "${workspaceFolder}/build"
            },
             "dependsOn" :[ "mkdir" ]
        },
        {   
             "label" "make" ,  //需要和 lauch.json 中的  "preLaunchTask" 相同
             "type" "shell" ,
             "command" "make" ,
             "args" : [],
             "options" : {
                 "cwd" "${workspaceFolder}/build"
            },
             "dependsOn" :[ "cmake" ] //执行当前命令前先执行 label 为 cmake 的命令
        }
    ],
     "version" "2.0.0"
}  

打上断点,点击运行,就可以开始调试啦 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!