go 代码的调试---打印调用堆栈的实例
本文介绍如何打印调用堆栈进行go代码的调试。
打印堆栈使用的runtimepackage中的Stack()函数
funcStack(buf[]byte,allbool)int Stackformatsastacktraceofthecallinggoroutineintobufandreturnsthenumberofbyteswrittentobuf.Ifallistrue,Stackformatsstacktracesofallothergoroutinesintobufafterthetraceforthecurrentgoroutine.
example
packagemain import( "runtime" "time" "fmt" ) funcmain(){ gopower1() for{ time.Sleep(time.Duration(1)*time.Minute) } } funcpower1(){ varbuf[1024]byte fmt.Println("power1.....") n:=runtime.Stack(buf[:],true) fmt.Println(string(buf[:]),n) }
输出结果:
power1..... goroutine5[running]: main.power1() /home/lanyang/src/t.go:29+0xec createdbymain.main /home/lanyang/src/t.go:14+0x3c
goroutine1[sleep]: time.Sleep(0xdf8475800) /home/lanyang/src/t.go:59+0x107 main.main() /home/lanyang/src/t.go:17+0x4f 303
以上这篇go代码的调试---打印调用堆栈的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。