在 VS Code 中调试时如何评估表达式?

石荒人*_*石荒人 18 go evaluate visual-studio-code

在此处输入图片说明我正在使用 vscode 来构建我的 golang gin 项目。

我去调试模块,不能做评估表达式。

我想走一些路线并评估一下,看看在那场比赛中发生了什么。

像eclipse ctrl+shift+i 或idea ctrl+alt+f8

快速求值表达式。

我也看到这个

Eclipse 检查 (Ctrl + Shift + I) 在 IntelliJ IDEA(社区版)中等效

在 VS Code 中调试时观察窗口或评估表达式?

func main() {
    
    router := gin.Default()
    router.GET("/user/:name", func(c *gin.Context) {
    name := c.Param("name")
    c.String(http.StatusOK, name, 1, 2, 3, 4)

})
Run Code Online (Sandbox Code Playgroud)

当名称中的调试器行 := c.Param("name")

我尝试使用 vscode 窗口的底部,当我将此代码输入命令时,它将返回

但如果我输入名称,它将为我返回正确的字符串。

无法评估表达式:{ "Expr": "c.Param("name")", "Scope": { "goroutineID": 34, "frame": 1 }, "Cfg": { "followPointers": true, "maxVariableRecurse": 1, "maxStringLen": 64, "maxArrayValues": 64, "maxStructFields": -1 } } 评估错误:不使用'call'就不允许函数调用

Jav*_*ori 19

对于 2020 年以后来到这里的人,现在可以调用一个函数。语法是:

call functionToBeCalled(arg1, arg2)
Run Code Online (Sandbox Code Playgroud)

在要求运行分配的问题中,您还可以设置一个变量

call variable = newValue
Run Code Online (Sandbox Code Playgroud)

来源:https : //github.com/golang/vscode-go/issues/100


Dei*_*nde 5

这现在是不可能的,因为最近才将更复杂的评估添加到 Delve 调试器中。您可能想要关注以下两个 Github 问题:

添加安全调用函数的能力 #119

不支持通过 delve 'call' 调用函数 #2655


Jea*_*der 5

在此处键入表达式或在源文件中选择代码,右键单击并选择在调试控制台中评估。

在此输入图像描述