主頁 > 知識庫 > go 代碼的調(diào)試---打印調(diào)用堆棧的實例

go 代碼的調(diào)試---打印調(diào)用堆棧的實例

熱門標(biāo)簽:鐵路電話系統(tǒng) 百度競價排名 AI電銷 網(wǎng)站排名優(yōu)化 Linux服務(wù)器 地方門戶網(wǎng)站 呼叫中心市場需求 服務(wù)外包

本文介紹如何打印調(diào)用堆棧進(jìn)行g(shù)o代碼的調(diào)試。

打印堆棧使用的runtime package中的Stack()函數(shù)

func Stack(buf []byte, all bool) int
Stack formats a stack trace of the calling goroutine into buf and returns the number of bytes written to buf. If all is true, Stack formats stack traces of all other goroutines into buf after the trace for the current goroutine.

example

package main
import (
    "runtime"
    "time"
    "fmt"
)
func main() {
    go power1()
    for {
        time.Sleep(time.Duration(1)*time.Minute)
    }
}


func power1(){
    var buf [1024]byte
    fmt.Println("power1.....")
    n := runtime.Stack(buf[:], true)
    fmt.Println(string(buf[:]), n)
}

輸出結(jié)果:

power1.....
goroutine 5 [running]:
main.power1()
/home/lanyang/src/t.go:29 +0xec
created by main.main
/home/lanyang/src/t.go:14 +0x3c
goroutine 1 [sleep]:
time.Sleep(0xdf8475800)
/home/lanyang/src/t.go:59 +0x107
main.main()
/home/lanyang/src/t.go:17 +0x4f
303

以上這篇go 代碼的調(diào)試---打印調(diào)用堆棧的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Go語言用map實現(xiàn)堆棧功能的方法
  • Go語言的隊列和堆棧實現(xiàn)方法
  • Python記錄詳細(xì)調(diào)用堆棧日志的方法

標(biāo)簽:黃山 湘潭 銅川 衡水 仙桃 湖南 蘭州 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《go 代碼的調(diào)試---打印調(diào)用堆棧的實例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266