- 在CMakeLists.txt文件头部添加
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") #需要调试请打开此选项
然后使用添加指令后的CMakeLists.txt重新编译程序
-
点击虫子图标
点击设置图标
如果已经创建launch.json
文件会自动打开json文件,如果没有创建会自动新建一个空白launch.json
文件
空白内容如下:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": []
}
- 填充用以调试的
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函数的输入参数, 每个参数使用""
包围,使用,
做分隔
- 如何调试
- 先使用CMakeLists.txt编译好可执行程序
-
在要调试的代码中打断点
- 点击
(gdb)启动
程序会自动运行至断点处 - 调试方法
继续 F5:启动调试。若已经启动,则会运行到下一个断点停住
逐过程 F10:单步跳过。即如果遇到函数,则不会进到这个函数里面
单步调试 F11:单步执行。如果遇到函数,会进到这个函数里面