一、要进行VSCode的调试首先需要先安装CMake和VSCode,在这就不在进行描述了,可以自行百度安装,一般都是傻瓜式的安装linux和windows类似,我的是在Ubuntu下,安装效果如下图:
二、安装VSCode的插件,可以自行按照我提供的截图的方式安装
三、开始第一个工程。
创建目录,并将CMakeLists.txt和main.cpp放到该目录下,如图:创建CStart目录,并将CMakeLists.txt和main.cpp放到该目录下。
CMakeList.txt 内容,具体CMakeLists.txt编写可以自行找其他资料参考。
cmake_minimum_required (VERSION 2.8) #最低要求的CMake版本
project(CStart) # 项目名称
file(GLOB SRC_FILE *.cpp) # 建立变量SRC_FILE为目录下.c文件列表
add_executable (${PROJECT_NAME} ${SRC_FILE}) # 要求编译可执行文件
add_definitions("-Wall -g")
Main.cpp内容:
#include <stdio.h>
int main(int argc, char ** argv) {
int i;
for (i=0; i < argc; i++)
printf("Argument %d is %s\n", i, argv[i]);
return 0;
}
四、真正开始了,首先编译:可以再如下图VSCode点击cmake默认配置,也可以使用CMake的图像话界面编译配置,也可以手动创建build目录,
然后cmake ..
然后 make
五、最重要的一步就是利用VSCode调试。
点击产生launch.json
配置launch.json
launch.json 解释
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 将要进行调试的程序的路径
"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,我一般设置为true
"cwd": "${workspaceFolder}", // 调试程序时的工作目录
"environment": [], // (环境变量?)
"externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
"internalConsoleOptions": "neverOpen", // 如果不设为neverOpen,调试时会跳到“调试控制台”选项卡,你应该不需要对gdb手动输命令吧?
"MIMode": "gdb", // 指定连接的调试器,可以为gdb或lldb。但目前lldb在windows下没有预编译好的版本。
"miDebuggerPath": "gdb", // 调试器路径,Windows下后缀不能省略,Linux下则去掉
"setupCommands": [ // 用处未知,模板如此
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": false
}
],
"preLaunchTask": "Compile" // 调试会话开始前执行的任务,一般为编译程序。与tasks.json的label相对应
}
]
}
默认只需要修改一个地方就行了,如果有参数可以修改下面的args参数:
整体文件结构如下图,没有tasks.json:
如果出现如下提示:(检查对应的路径或者可执行文件是否存在)
六、最终调试运行效果如下: