go 输出栈信息

方式1:debug.Stack函数

调用runtime.Stack函数,无需指定参数,输出当前goroutine的栈信息。
源码在runtime/debug/stack.go中:

func Stack() []byte {
    buf := make([]byte, 1024)
    for {
        n := runtime.Stack(buf, false)
        if n < len(buf) {
            return buf[:n]
        }
        buf = make([]byte, 2*len(buf))
    }
}

方式2:runtime.Stack函数

参数是buf []byte和all bool(true时输出所有协程栈信息),返回值是栈信息字节数,推荐使用。

posted on 2024-12-18 09:11  王景迁  阅读(29)  评论(0)    收藏  举报

导航