1、使用cmake编译生成可执行文件,可执行文件需要改成Debug模式。
2、在vscode中创建launch.json:
(1)vscode自动生成
"version": "0.2.0",
2"configurations": [
3 {
4 "name": "(gdb) 启动",
5 "type": "cppdbg",
6 "request": "launch",
7 "program": "输入程序名称,例如 ${workspaceFolder}/a.out",
8 "args": [],
9 "stopAtEntry": false,
10 "cwd": "${fileDirname}",
11 "environment": [],
12 "externalConsole": false,
13 "MIMode": "gdb",
14 "setupCommands": [
15 {
16 "description": "为 gdb 启用整齐打印",
17 "text": "-enable-pretty-printing",
18 "ignoreFailures": true
19 },
20 {
21 "description": "将反汇编风格设置为 Intel",
22 "text": "-gdb-set disassembly-flavor intel",
23 "ignoreFailures": true
24 }
25 ]
26 }
27
28
29]
解释:
这段配置是 Visual Studio Code (VSCode) 中用于 C/C++ 调试的 launch.json 文件的一部分。它定义了一个调试配置。
1. `"version": "0.2.0"`:这表示该配置文件的版本号,确保与当前使用的 VSCode 和扩展相兼容。
2. `"configurations": [...`:这是一个数组,可以包含多个调试配置。在这个例子中,只有一个配置。
3. `{...}`:这是具体的调试配置对象。
4. `"name": "(gdb) 启动"`:配置的名称,在启动调试会话时用于选择特定的配置。
5. `"type": "cppdbg"`:指定调试器类型,这里使用的是针对 C/C++ 的调试器。
6. `"request": "launch"`:说明这是一个启动请求,即调试器将直接启动程序进行调试,而不是附加到一个已经运行的进程上。
7. `"program": "输入程序名称,例如 ${workspaceFolder}/a.out"`:指明要调试的程序路径。`${workspaceFolder}` 是一个变量,表示当前工作区的根目录。
8. `"args": []`:程序启动时传递给它的命令行参数列表。
9. `"stopAtEntry": false`:如果设为 `true`,程序启动时会在主函数的第一条指令处自动暂停。这里设置为 `false` 表示不立即暂停。
10. `"cwd": "${fileDirname}"`:指定程序的当前工作目录,`${fileDirname}` 是一个变量,表示当前打开文件所在的目录。
11. `"environment": []`:环境变量列表,可以在这里添加或修改环境变量。
12. `"externalConsole": false`:是否在外部控制台中运行程序,`false` 表示在内部集成终端中运行。
13. `"MIMode": "gdb"`:指定使用的调试协议,这里是 gdb。
14. `"setupCommands": [...`:一系列在调试会话开始前执行的 gdb 命令,用于初始化调试环境。例如,启用漂亮打印和设置反汇编风格为 Intel 风格。
(2)加以改动:
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/run_euroc", //改为可执行文件路径
"args": ["drtTightly", "MH"], //命令行参数
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
]
}