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 生日广州男生祝福语简短