如何在 VSCode 调试模式下显示整个值

col*_*man 18 debugging go visual-studio-code

在 Go 中调试时,我一直无法看到变量的整个值。当我点击一个相当长的值时,它会显示我... +# more。但我找不到一种方法来查看该值的其余部分。即使在监视模式下,它也会做同样的事情,即使我单击复制值,它也会复制 ...+# more。下面是一个例子。有人知道如何查看 +114 的其余部分吗?

“一些真的很长的字符串..+114 更多”

Tob*_*eel 9

您可以在 vscode settings.json 中配置 delve。

有一个名为“maxStringLen”的参数,您可以将其设置为更高的值。我不建议将值设置为高。如果将 maxStringLen、maxArrayValues 等设置为高,调试器会变得非常慢。因此,如果您使用这些 delve 设置并且您的调试器变慢,最好再次选择较低的值。

这是一个显示 maxStringLen 和其他一些可能值的示例:

"go.delveConfig": {
    "useApiV1": false,
    "dlvLoadConfig": {
        "followPointers": true,
        "maxVariableRecurse": 3,
        "maxStringLen": 400,
        "maxArrayValues": 400,
        "maxStructFields": -1
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 您在哪里找到这些设置记录?VSCode 1.55.2 无法在项目设置中识别它们(它们保持灰色,并且鼠标悬停时会警告它们无法识别)。当添加到我的用户设置时,没有任何抱怨,但调试器仅显示前 300 个元素,将长度超过 300 个元素的扩展数组的长度报告为 len 为 300。所以不起作用。 (2认同)
  • 我不知道这些记录在哪里。我刚刚输入了 settings.json,智能感知(即使在今天)也知道这些选项,并且我得到了使用它们的建议。它们也不会变灰。 (2认同)

小智 8

我的 go 编程需要这个答案。答案与 Tobias 提供的略有不同(也许我有更新版本的调试器)。

以下是更改调试器中可以看到的字符串长度的方法:

  1. 设置你的 go 程序进行调试(安装 vs code 的 go 扩展)

  2. 在您的工作区中,将有一个 .vscode 目录。其中有一个名为 launch.json 的文件。如果不存在,那么当您要启动调试器时,可以创建一个。

  3. 编辑 launch.json 文件。它将包含一个简单的 JSON 配置。扩展该 JSON,使其看起来像这样(我将最大长度扩展为 400):

    {
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
    
        {
            "name": "Launch Package",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${workspaceFolder}",
            "apiVersion": 2,
            "dlvLoadConfig": {
                "followPointers": true,
                "maxVariableRecurse": 1,
                "maxStringLen": 400,
                "maxArrayValues": 64,
                "maxStructFields": -1
            }
        }
        ]
    }
    
    Run Code Online (Sandbox Code Playgroud)