【问题标题】:Print all local variables in Golang打印 Golang 中的所有局部变量
【发布时间】:2015-02-13 21:16:37
【问题描述】:

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

是的,I am well aware golang has limited gdb support right now.

这个commonly used thread on stackoverflow 没有提到golang。

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

非常感谢。

【问题讨论】:

  • 没有反映你的堆栈帧,找到代码并解析它,我怀疑这是可能的。即使那样,我也不确定您是否可以通过反思获得他们的价值观。只是他们的名字。
  • 我认为你做不到。
  • 更新:delve,一个 golang 的调试器。现在是 pre 1.0 并且有 osx 支持。它仍然没有完全发挥作用,但它正在出现。你应该检查一下。

标签: go


【解决方案1】:

没有简单的解决方案:

  • gotype 可以对代码进行静态分析并打印所有变量(但不能打印它们的值)
  • go-spew 可以打印变量值(Go 数据结构的深度漂亮打印机以帮助调试),但这就像增强的 printf,而不是像调试会话那样的“gdb”。

【讨论】:

    【解决方案2】:

    dlv,你可以试试print命令,它是最接近你能获得atm的实时调试器的东西。

    否则像@VonC 提到的 gotype/go-spew 是要走的路。

    【讨论】:

    • 谢谢。我知道 dlv,但它还没有 osx 支持。
    猜你喜欢
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    • 2015-10-03
    • 1970-01-01
    • 2011-02-19
    • 2015-11-18
    • 2010-12-04
    相关资源
    最近更新 更多