简体   繁体   中英

glob.func in pprof heap profiles

When doing a heap profile using go tool pprof , I see some entries like github.com/anacrolix/utp.glob.func1 . This doesn't correspond to any named function I can see, I assume it's a closure. What does glob refer to? How can I associate names like this to the appropriate function? 在此处输入图片说明

glob refers to global environment, func1 means anonymous function. So it should refer to some global anonymous function. Check this example and its panic information:

Example:

package main

import (
    "fmt"
)

var (
    p = func() string {
        panic("a")

        return "asdf"
    }()
)

func main() {
    fmt.Println(p)
}

Panic information:

panic: a

goroutine 1 [running]:
panic(0x128360, 0x1040a120)
    /usr/local/go/src/runtime/panic.go:464 +0x700
main.glob.func1(0x0, 0x0)
    /tmp/sandbox715198144/main.go:9 +0x80
main.init()
    /tmp/sandbox715198144/main.go:12 +0xa0

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM