vscode终端在远程linux调试C代码的时候使用时, 所有的调试信息都在终端输出,但是当日志比较多或者需要详细查看的时候,还是需要再文本编辑器中查看,目前需要查看只有一个方法:
打开vscode在终端的右键菜单,全选并复制,然后再文本编辑器中粘贴.
在实际使用过程中,问题很多:
1,当打印很多的时候,右键全选后复制很慢,不知是bug还是什么原因,可能导致vscode直接卡死.
2,稍微老点的vscode版本,可能有内存泄漏,,出现过日志太多,导致vscode内存占用超过5G的情况,直接把系统跑死.
其实最实用的方式是类似常见的ssh终端,将终端的输出在后台文本里面另存一份.但是找遍vscode终端设置都没有这个功能.
尝试过几种方式,包括用tee输出到文本,gdb直接输出日志等等,都不行, 找了一个最土的方法,勉强可用:
1,C的调试配置文件launch.json
args里面增加
"args": "&>>/home/test/2303.log"
{
"version": "0.2.0",
"configurations": [
{
"name": "spdk",
"type": "cppdbg",
"request": "launch",
"program": "/home/test/build/bin/test",
"args": ["-m", "0xFFFE", "--wait-for-rpc","-r", "1.1.1.4:5000", "&>>/home/test/2303.log" ],
"stopAtEntry": false,
"cwd": "/home/test/build/bin",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "enable-pretty-printing",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "echo",
"miDebuggerPath": "/usr/bin/gdb",
"miDebuggerArgs": "-ex",
},
]
}
此时在终端的输出会输出到/home/test/2303.log文件,然后再vscode终端打开一个新窗口:
执行
tail -f /home/test/2303.log
这样当执行程序后,切换到这个窗口,就可以看到输出,同时在/home/test/2303.log文件中一直有备份.