打印Golang中的所有局部变量

打印Golang中的所有局部变量,go,Go,我想知道如何枚举golang中所有局部变量的名称和值。这样做的目的是有效地调试go代码 对 这没有提到戈朗 我真的在寻找解决方案(我想其他人也很好奇) 非常感谢。没有简单的解决方案: 可以对代码进行静态分析并打印所有变量(但不打印其值) 可以打印变量值(deep pretty printer for Go data structures以帮助调试),但这类似于增强的printf,而不是类似于“gdb”的调试会话 还有,你可以尝试使用print命令,这是最接近你能得到的实时调试器 否则,像@Vo

我想知道如何枚举golang中所有局部变量的名称和值。这样做的目的是有效地调试go代码

这没有提到戈朗

我真的在寻找解决方案(我想其他人也很好奇)


非常感谢。

没有简单的解决方案:

  • 可以对代码进行静态分析并打印所有变量(但不打印其值)
  • 可以打印变量值(deep pretty printer for Go data structures以帮助调试),但这类似于增强的
    printf
    ,而不是类似于“gdb”的调试会话
还有,你可以尝试使用
print
命令,这是最接近你能得到的实时调试器


否则,像@VonC这样的gotype/go-spew就是最好的选择。

除了反思堆栈框架、找到代码并对其进行解析之外,我怀疑这是可能的。即使这样,我也不确定你是否能通过反思获得他们的价值观。只是他们的名字。我认为你做不到。更新:delve,golang的调试器。现在是1.0之前的版本,并支持osx。它还没有完全发挥作用,但正在发展中。你应该去看看,谢谢。我知道dlv,但它还没有osx支持。