go语言runtime_中台怎么理解

go语言runtime_中台怎么理解funcCaller(skipint)(pcuintptr,filestring,lineint,okbool)参数:skip是要提升的堆栈帧数,0-当前函数,1-上一层函数,….返回值:pc是uintptr这个返回的是函数指针file是函数所在文件名目录line所在行号ok是否可…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

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

Jetbrains全家桶1年46,售后保障稳定

   参数:skip是要提升的堆栈帧数,0-当前函数,1-上一层函数,….

 

    返回值:

      pc是uintptr这个返回的是函数指针

      file是函数所在文件名目录

      line所在行号

     ok 是否可以获取到信息

 

示例:

我们分别打印skip为0-3的相关信息

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()  //获取函数名
	fmt.Println(fmt.Sprintf("%v   %s   %d   %t   %s",pc,file,line,ok,pcName))
}

结果:

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

 

分析结果可以看到

0-3分别上当前函数,当前函数的上一个caller,….

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210046.html原文链接:https://javaforall.net

(0)
上一篇 2025年7月28日 下午11:43
下一篇 2025年7月29日 上午7:22


相关推荐

  • 详解EditText输入监听TextWatcher「建议收藏」

    日常开发中,我们可能会遇到需要监听EditText输入,比如判断输入是否为电话号码,获取输入的数据长度来限定字数等。这就需要监听EditText的输入状态。EditText使用TextWatcher实现类似按钮监听事件:使用方法效果图:MainActivity.javapublicclassMainActivityextendsAppCompatActivity{priv

    2022年4月16日
    41
  • Springboot引入本地jar包,并通过maven把项目成功打包成jar包部署[通俗易懂]

    Springboot引入本地jar包,并通过maven把项目成功打包成jar包部署[通俗易懂]引入钉钉的sdk打包到线上,各种报错:ClassNofFoundException…第一步:将jar包放到resource的lib文件夹下:第二部:在pom文件中引入:第三部:继续修改pom文件的打包插件配置:<includeSystemScope>true</includeSystemScope>打包时候IDEA还是会报警告,不用管它;…

    2022年6月29日
    26
  • 股票布林线boll指标介绍及应用(图解)_布林线和什么指标配合效果好

    股票布林线boll指标介绍及应用(图解)_布林线和什么指标配合效果好一、定义:布林线指标,即BOLL指标,其英文全称是“BollingerBands”,布林线(BOLL)由约翰·布林先生创造,其利用统计原理,求出股价的标准差及其信赖区间,从而确定股价的波动

    2022年8月2日
    8
  • ideavim有什么用_intellij idea社区版

    ideavim有什么用_intellij idea社区版IdeaVim史诗级分享之前就对vim非常着迷,而我本身就是写java代码的,经常使用Idea这个IDE。2019年初,Idea里一个和vim有关的插件,深深的吸引了我,名字叫Ideavim。后来我就开始使用了。用它的时候,idea原本的快捷键很多就会失去自己的效力。需要进行重新映射,我花了一些时间将一些非常常用的快捷键整理收集,然后赋予其ideavim的快捷键。取得了非常不错的效果。使用vim,最大的好处,是减少打代码的时候进行键鼠切换的频率。有一种相当不错流畅感

    2022年10月1日
    3
  • 【java系列】unix时间戳转Date[通俗易懂]

    【java系列】unix时间戳转Date[通俗易懂]unix时间戳转Date注意,不能直接使用Integer进行乘除和转换,需要转成bigDecimal去处理,否则转换出来的时间只会是1970-xxxxpackagehutoolTest;importcn.hutool.core.date.DateTime;importjava.math.BigDecimal;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassDateTest{pub

    2022年6月25日
    33
  • AI Agent与财务智能体

    AI Agent与财务智能体

    2026年3月15日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号