运行 golang 调试器时,VSCode 调试不显示 VARIABLES 区域中的映射值

假设这张地图是s.S.Data,它显示地图的长度为2,但什么也没显示。s.S当我在 WATCH 区域 添加表达式时,它显示正确。

http://img2.mukewang.com/64abc28b00015b5305050784.jpg

有样本:


package main


import (

    "fmt"

)


type Some struct {

    ID   int

    Data map[string]string

    S    *Some

}


func Print(s Some) {

    var t Some

    t = s // Breakpoint

    fmt.Println(t)

    if t.S != nil {

        fmt.Println(t.S)

    }

}


func main() {

    s := Some{

        ID: 2333,

        Data: map[string]string{

            "1": "A",

            "2": "B",

        },

    }

    ss := Some{

        ID: 7777,

        S:  &s,

    }

    Print(ss)

    fmt.Println("Hello, playground")

}

有没有办法让它在VARIABLES区域正确显示?


茅侃侃
浏览 215回答 1
1回答

慕虎7371278

 设置go.delveConfig.dlvLoadConfig.maxVariableRecurse1 以外的值。更多详情:打开首选项并键入delve,然后按Edit in settings.json。(注意:如果您选择“用户”选项卡,它将应用于所有 VSCode 项目,否则它将仅应用于该项目。)之后settings.json将使用空 JSON 对象打开。写下来go.d,然后应该会go.delveConfig弹出自动完成功能。按 Enter 键,您将获得 的样板设置delve,它是 VSCode 使用的 GoLang 调试器。编辑除1之外的key的值"maxVariableRecurse",然后你将能够看到更深层次的变量。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go