VSCode调试Go程序:如何展开监视面板字符串的“...+207 more”
解决VSCode Go调试中字符串截断无法复制完整内容的问题
我之前调试Go代码的时候也被这个字符串截断的问题坑过!完全不用加print语句,给你几个亲测有效的解决办法:
调整Delve调试器的字符串长度限制(长期解决方案)
VSCode的Go扩展依赖Delve作为调试器,默认会对长字符串进行截断。你可以通过修改launch.json的调试配置来取消或增大这个限制:- 打开VSCode的调试面板,点击顶部的齿轮图标(打开
launch.json配置文件) - 在你的调试配置项(比如"Launch Package")中添加
dlvFlags字段:{ "name": "Launch Package", "type": "go", "request": "launch", "mode": "auto", "program": "${fileDirname}", "dlvFlags": ["-max-string-len", "0"] // 0表示不限制字符串长度,也可以设置具体数值比如4096 }
保存配置后重启调试,监视面板里的长字符串就不会再被截断,直接复制就能拿到完整内容。
- 打开VSCode的调试面板,点击顶部的齿轮图标(打开
用调试控制台临时输出完整字符串
如果只是临时需要查看某个长字符串,不想修改全局配置的话,可以在调试暂停时打开Debug Console面板,输入Delve的调试命令:- 直接打印变量:
print your_string_variable(把your_string_variable换成你要查看的变量名) - 或者用格式化命令确保完整输出:
call fmt.Sprintf("%s", your_string_variable)
控制台会输出完整的字符串内容,直接复制即可。
- 直接打印变量:
在监视面板使用格式化表达式
另一种灵活的方式是在监视面板里添加带格式化的表达式,强制显示完整字符串:- 打开调试监视面板,点击"+"号添加新的监视项
- 输入类似
fmt.Sprintf("%s", your_string_variable)的表达式(替换成你的变量名)
这个表达式会绕过默认的截断限制,在监视面板中显示完整的字符串,方便直接复制。
内容的提问来源于stack exchange,提问作者Tero
相关产品推荐
相关产品推荐

