最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年12月23日 16:38:00   作者:思維的深度  
這篇文章主要介紹了對(duì)Golang中的runtime.Caller使用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

如下所示:

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)用棧

我就廢話不多說了,大家還是直接看代碼吧~

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

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

相關(guān)文章

  • golang?gorm的關(guān)系關(guān)聯(lián)實(shí)現(xiàn)示例

    golang?gorm的關(guān)系關(guān)聯(lián)實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了golang?gorm的關(guān)系關(guān)聯(lián)實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • Go中map數(shù)據(jù)類型3點(diǎn)小知識(shí)

    Go中map數(shù)據(jù)類型3點(diǎn)小知識(shí)

    這篇文章主要介紹了Go中map數(shù)據(jù)類型3點(diǎn)小知識(shí),在go中使用map時(shí)可能會(huì)用本文中的小知識(shí),需要的朋友可以參考下
    2014-10-10
  • go中make用法及常見的一些坑

    go中make用法及常見的一些坑

    golang分配內(nèi)存主要有內(nèi)置函數(shù)new和make,下面這篇文章主要給大家介紹了關(guān)于go中make用法及常見的一些坑,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Go語(yǔ)言中的數(shù)據(jù)格式(json、xml?、msgpack、protobuf)使用總結(jié)

    Go語(yǔ)言中的數(shù)據(jù)格式(json、xml?、msgpack、protobuf)使用總結(jié)

    在分布式的系統(tǒng)中,因?yàn)樯婕暗綌?shù)據(jù)的傳輸,所以一定會(huì)進(jìn)行數(shù)據(jù)的交換,此時(shí)就要定義數(shù)據(jù)交換的格式,例如二進(jìn)制、Json、Xml等等。本文總結(jié)了Go語(yǔ)言中的數(shù)據(jù)格式,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Golang中字符串(string)與字節(jié)數(shù)組([]byte)一行代碼互轉(zhuǎn)實(shí)例

    Golang中字符串(string)與字節(jié)數(shù)組([]byte)一行代碼互轉(zhuǎn)實(shí)例

    golang語(yǔ)言本身就是c的工具集,開發(fā)c的程序用到的大部分結(jié)構(gòu)體,內(nèi)存管理,攜程等,golang基本都有,下面這篇文章主要給大家介紹了關(guān)于Golang中字符串(string)與字節(jié)數(shù)組([]byte)一行代碼互轉(zhuǎn)的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • Go語(yǔ)言中的通道chan使用指南

    Go語(yǔ)言中的通道chan使用指南

    Go語(yǔ)言的通道chan是實(shí)現(xiàn)并發(fā)編程的關(guān)鍵工具,主要用于goroutine之間的數(shù)據(jù)傳輸,本文主要介紹了通道的基本操作如創(chuàng)建、發(fā)送、接收和關(guān)閉數(shù)據(jù),以及使用select語(yǔ)句進(jìn)行多路復(fù)用和超時(shí)控制,感興趣的可以了解一下
    2024-10-10
  • Go1.21新增內(nèi)置函數(shù)(built-in?functions)詳解

    Go1.21新增內(nèi)置函數(shù)(built-in?functions)詳解

    Go?1.21新增的內(nèi)置函數(shù)分別是?min、max?和?clear,這篇文章主要帶大家一起了解一下這幾個(gè)函數(shù)的用途和使用示例,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-08-08
  • 淺談golang類型斷言,失敗類型斷言返回值問題

    淺談golang類型斷言,失敗類型斷言返回值問題

    這篇文章主要介紹了淺談golang類型斷言,失敗類型斷言返回值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • GO利用channel協(xié)調(diào)協(xié)程的實(shí)現(xiàn)

    GO利用channel協(xié)調(diào)協(xié)程的實(shí)現(xiàn)

    本文主要介紹了GO利用channel協(xié)調(diào)協(xié)程的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Go語(yǔ)言日志內(nèi)聚復(fù)用及gjson踩坑記錄分享

    Go語(yǔ)言日志內(nèi)聚復(fù)用及gjson踩坑記錄分享

    這篇文章主要為大家介紹了Go語(yǔ)言日志內(nèi)聚復(fù)用及gjson踩坑記錄分享,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06

最新評(píng)論

和田县| 定西市| 关岭| 丽水市| 广汉市| 道孚县| 洛川县| 静乐县| 米林县| 台南市| 秦安县| 南雄市| 莒南县| 平乐县| 宣恩县| 长葛市| 额尔古纳市| 斗六市| 周至县| 武夷山市| 临江市| 静乐县| 江油市| 星子县| 泽普县| 樟树市| 北宁市| 北京市| 东平县| 萨迦县| 宜黄县| 安平县| 云阳县| 拜泉县| 汉源县| 新河县| 洪湖市| 峨眉山市| 肥乡县| 清新县| 福建省|