Goスレッドのスタックトレースの確認方法

Go言語では、runtime.Stack関数を呼び出すことで、現在のゴルーチンのスタック情報を取得できます。具体的な使用方法を以下に示します。

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関数を使い、現在のゴルーチンのスタック情報を取得し、出力します。 なお、runtime.Stack関数の第1引数は、スタック情報を格納するバイト配列で、第2引数は、スタック内の全てのゴルーチンを出力するか否かを指定します。

上記のコードを実行すると、現在のGoroutineのスタック情報がコンソールに表示されます。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds