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代码的调试---打印调用堆栈的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
热门推荐
10 祝女儿简短祝福语大全
11 大学新年祝福语简短创意
12 元旦适合的祝福语简短
13 朋友出远门祝福语简短
14 初六简短的祝福语
15 祝男孩生日祝福语简短
16 同事调离的祝福语简短
17 拜年红包的祝福语简短
18 妈妈生日祝福语简短励志