利用vscode对C/C++代码进行debug,需要对以下文件进行配置。
参考:ubuntu20.04 vscode调试C++,CMake
launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++ - Build and debug active file", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${workspaceFolder}/build/ndt_trans", // 将要进行调试的程序的路径
"args": ["4" ,"0.005"], // 程序调试时传递给程序的命令行参数
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处
"cwd": "${workspaceFolder}", // 调试程序时的工作目录
"environment": [], // (环境变量)
"externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
"MIMode": "gdb", // 指定连接的调试器,可以为gdb或lldb。
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build", // 调试会话开始前执行的任务,一般为编译程序。与tasks.json的label相对应
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
调试时如果要加入(多个)参数,在"args"
里面添加,多个参数用“,”隔开。
task.json
{
"tasks": [
{
"type": "shell", // 可以为shell或process,前者相当于先打开shell再输入命令,后者是直接运行命令
"label": "build", // 任务名称,与launch.json的preLaunchTask相对应
"command": "cd ${workspaceFolder}/build;cmake ..;make", // 要使用的编译器
"args": [
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
CMakeLists
如果使用cmake进行编译,需要对CMakeLists
文件进行修改,只需添加以下语句。
set(CMAKE_BUILD_TYPE "Debug")
完成以上配置后,按F5进行调试即可。