我正在使用 delve go 调试器来调试一些代码。当我尝试打印一个字符串变量时,它给了我一个缩写版本。
(dlv) print myString
"my string...+539 more"
如何让它打印完整的字符串?
delve 最近添加了配置打印字符串长度的功能。要查看配置选项的完整列表,请运行config -list
;
(dlv) config -list
aliases map[]
substitute-path []
max-string-len <not defined>
max-array-values <not defined>
show-location-expr false
我们在这里感兴趣的一个叫做max-string-len
,你可以看到它是 current <not defined>
。要将长度增加到例如 1000,请运行
(dlv) config max-string-len 1000
现在运行print myString
应该打印整个字符串。
只是为了添加您的答案,如果您正在使用VS Code调试功能,请将以下配置添加到您的settings.json
:
"go.delveConfig": {
"dlvLoadConfig": {
"maxStringLen": 1024,
},
"apiVersion": 2,
},
除了上述答案之外,要在每次运行时应用这些配置dlv
,您应该能够在(参见源代码)中找到配置文件:
$HOME/.dlv/config.yml
默认情况下在 MacOS 上$HOME/.dlv/config.yml
默认情况下在 Linux 上。如果$XDG_CONFIG_HOME
设置了那么它应该在$XDG_CONFIG_HOME/dlv/config.yml
例如config.yml
文件中的相关区域:
...
# Maximum number of elements loaded from an array.
max-array-values: 1000
# Maximum loaded string length.
max-string-len: 1000
...
Type 'help' for list of commands.
(dlv) config -list
...
max-string-len 1000
max-array-values 1000
...