主頁(yè) > 知識(shí)庫(kù) > 對(duì)Golang中的runtime.Caller使用說(shuō)明

對(duì)Golang中的runtime.Caller使用說(shuō)明

熱門(mén)標(biāo)簽:仙桃400電話(huà)辦理 寧波語(yǔ)音外呼系統(tǒng)公司 宿遷便宜外呼系統(tǒng)代理商 鄭州智能語(yǔ)音電銷(xiāo)機(jī)器人價(jià)格 不封卡外呼系統(tǒng) 湛江crm外呼系統(tǒng)排名 重慶慶云企業(yè)400電話(huà)到哪申請(qǐng) 地圖標(biāo)注免費(fèi)定制店 上海極信防封電銷(xiāo)卡價(jià)格

如下所示:

func Caller(skip int) (pc uintptr, file string, line int, ok bool)

參數(shù):skip是要提升的堆棧幀數(shù),0-當(dāng)前函數(shù),1-上一層函數(shù),....

返回值:

pc是uintptr這個(gè)返回的是函數(shù)指針

file是函數(shù)所在文件名目錄

line所在行號(hào)

ok 是否可以獲取到信息

示例:

我們分別打印skip為0-3的相關(guān)信息

package main 
import (
 "fmt"
 "runtime"
)
 
func main() {
 for i := 0 ; i 4; i++ {
 test(i)
 }
}
 
func test(skip int) {
 call(skip)
}
 
func call(skip int) {
 pc,file,line,ok := runtime.Caller(skip)
 pcName := runtime.FuncForPC(pc).Name() //獲取函數(shù)名
 fmt.Println(fmt.Sprintf("%v %s %d %t %s",pc,file,line,ok,pcName))
}

結(jié)果:

4887700 D:/GoProject/src /test/test5.go 19 true main.call
4887585 D:/GoProject/src/ test/test5.go 15 true main.test
4887481 D:/GoProject/src /test/test5.go 10 true main.main
4383501 C:/Go/src/runtime/proc.go 198 true runtime.main

分析結(jié)果可以看到

0-3分別上當(dāng)前函數(shù),當(dāng)前函數(shù)的上一個(gè)caller,....

補(bǔ)充:golang打印所有的runtime調(diào)用棧

我就廢話(huà)不多說(shuō)了,大家還是直接看代碼吧~

import "runtime"
buf := make([]byte, 1  20)
runtime.Stack(buf, true)
fmt.Printf("\n%s", buf)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • golang 定時(shí)任務(wù)方面time.Sleep和time.Tick的優(yōu)劣對(duì)比分析
  • 解決Golang time.Parse和time.Format的時(shí)區(qū)問(wèn)題
  • 解決golang時(shí)間字符串轉(zhuǎn)time.Time的坑
  • golang的時(shí)區(qū)和神奇的time.Parse的使用方法
  • Golang中的time.Duration類(lèi)型用法說(shuō)明
  • golang time包做時(shí)間轉(zhuǎn)換操作
  • golang xorm及time.Time自定義解決json日期格式的問(wèn)題
  • golang time常用方法詳解

標(biāo)簽:安康 青海 遼寧 物業(yè)服務(wù) 儋州 海南 西雙版納 電子產(chǎn)品

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《對(duì)Golang中的runtime.Caller使用說(shuō)明》,本文關(guān)鍵詞  對(duì),Golang,中的,runtime.Caller,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《對(duì)Golang中的runtime.Caller使用說(shuō)明》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于對(duì)Golang中的runtime.Caller使用說(shuō)明的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章