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 好听的元旦简短祝福语