一尘不染

前往:使用gdb打印变量

go

在此程序中,如何中断调试器的执行并打印i的值?

package main

import "fmt"

func main() {
        x := "abc"
        i := 3
        fmt.Println(i)
        fmt.Println(x)
}

我不能打印。但是我可以打印x:

go build test.go
gdb test  
[...]Reading symbols from /home/ned/test...done.
(gdb) br 9
(gdb) run
(gdb) p i
No symbol "i" in current context.
(gdb) p x
$1 = "abc"

阅读 297

收藏
2020-07-02

共1个答案

一尘不染

听起来好像变量可能已被编译器优化为不存在。您是否尝试过调试构建?

您可以使用go build -gcflags '-N'

2020-07-02