在Go語言中,可以通過調用runtime.Stack
函數來獲取當前Goroutine的堆棧信息。具體的使用方法如下:
package main
import (
"fmt"
"runtime"
)
func main() {
go func() {
printStack()
}()
// 確保Goroutine有足夠的時間執行
runtime.Gosched()
}
func printStack() {
var buf [4096]byte
n := runtime.Stack(buf[:], false)
fmt.Println(string(buf[:n]))
}
在上面的例子中,我們使用runtime.Stack
函數來獲取當前Goroutine的堆棧信息,并打印出來。注意,runtime.Stack
函數的第一個參數是一個字節數組,用來存儲堆棧信息;第二個參數表示是否需要將堆棧中的所有Goroutine都打印出來。
運行上述代碼,就可以在控制臺上看到當前Goroutine的堆棧信息。