原文链接:[1] + Done “/usr/bin/gdb“ --interpreter=mi --tty=${DbgTerm} 0<“/tmp/Microsoft--优快云博客
具体问题不再赘述,简单来说就是用VScode远程链接到Ubuntu系统会出现多余的一行输出(我测试的版本是22.04,无论是wsl虚拟机还是VMware虚拟机都会出现问题),就是强迫症犯了不想要这一行多余的输出
对于不清楚launch.json以及tasks.json的初学者来说,文章还是有一些太简洁了,因此我来补充一些细节,这里在launch.json中添加的代码,应该是从右上角设置中自动生成的,而非是自己手动选择添加配置的其他配置(比如在“运行”——“添加配置”——“(gdb)启动”什么的,那个并不能正常生效)
接下来说明一下如何自动生成对应的(gcc或者g++)的launch.json内容:
安装了VScode的C/C++扩展之后,在右上角有这个三角和齿轮选项(如果没有可以试试刷新,点到别的文件再点回.c或者.cpp文件),我们选择齿轮
然后选择gcc(如果是Cpp应该是g++)
此时才算正常生成了launch.json文件
然后在当前的launch.json文件中进行更改
在configuration下面添加如下代码(记得别忘了最后的英文逗号,建议直接复制)
"miDebuggerArgs": "-q -ex quit; wait() { fg >/dev/null; }; /bin/gdb -q --interpreter=mi"
之后再运行的话,请选择自定义好的这个配置而非默认配置(可以进行修改名称来辨识,也就是launch.json文件中的“name”对应的),不然别问我为什么我选了下面那个还是不行的问题
附全部的launch.json源代码
{
"configurations": [
{
"name": "C/C++: gcc 构建和调试活动文件--去除尾部多余输出",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerArgs": "-q -ex quit; wait() { fg >/dev/null; }; /bin/gdb -q --interpreter=mi",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: gcc 生成活动文件",
"miDebuggerPath": "/usr/bin/gdb"
}
],
"version": "2.0.0"
}