如何在delve中打印字符串变量的完整值?

时间:2018-09-20 01:30:56

标签: debugging go delve

我正在使用delve go调试器来调试一些代码。当我尝试打印字符串变量时,它给了我一个缩写版本。

(dlv) print myString
"my string...+539 more"

如何获取完整的字符串?

3 个答案:

答案 0 :(得分:3)

最近增加了配置打印字符串长度的功能。要查看configuration options的完整列表,请运行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,您现在可以看到它是<not defined>。将长度增加到1000,运行

(dlv) config max-string-len 1000

现在运行print myString应该会打印整个字符串。

答案 1 :(得分:1)

要添加到答案中,如果您使用的是 VS Code 调试功能,请将以下配置添加到:code

settings.json

答案 2 :(得分:1)

除了上述答案外,要在每次运行dlv时应用这些配置,您应该能够在(see the sourcecode)中找到配置文件:

    在MacOS上默认为
  • $HOME/.dlv/config.yml
  • 在Linux上默认为
  • $HOME/.dlv/config.yml。如果设置了$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
...