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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • volatile禁止指令重排的原理_警告禁止指令提示颜色顺序

    volatile禁止指令重排的原理_警告禁止指令提示颜色顺序Volatile禁止指令重排什么是指令重排?你写的程序,计算机并不是按照你写的那样去执行的。源代码->编译器优化的重排->指令并行可能会重排->内存系统可能会重排->执行处理器在进行指令重排的时候,考虑,数据之间的依赖性!指令重排不会造成影响的例子intx=1;//1inty=2;//2x=x+5;//3y=x*x;//4我们所期望的:1234执行的时候可能会变成21341324但是不可能是4321

    2022年10月17日
    0
  • 数据预处理无量纲化处理_统计数据的预处理

    数据预处理无量纲化处理_统计数据的预处理1.无量纲化定义无量纲化,也称为数据的规范化,是指不同指标之间由于存在量纲不同致其不具可比性,故首先需将指标进行无量纲化,消除量纲影响后再进行接下来的分析。2.无量纲化方法无量纲化方法有很多,但

    2022年8月5日
    3
  • Android移动开发-VR全景照片简单实现

    Android移动开发-VR全景照片简单实现VR技术的热度每年都在增长,在购物、旅游等方面运用度很高。该项目引用了Google的vr:sdk-panowidget依赖库,通过VrPanoramaView,简单实现在手机上查看全景照片,下面是项目介绍。build.gradle(Module:app)需要导入依赖:dependencies{implementation‘com.google.vr:sdk-panowidget:1.30.0’}布局文件activity_main.xml,调

    2022年4月7日
    295
  • 大数据开发面试题及答案(在美团点评的开发岗怎么样)

    此面试题来自牛客网友分享的美团优选一面,面试时长一小时。网友情况:海外水本,在某三线中厂工作2年。参考答案由本公众号提供。如有错误,欢迎指正!以下为面试过程中提问,岗位为大数据开发,根据提…

    2022年4月16日
    43
  • Idea激活码最新教程2018.2.7版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2018.2.7版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2018 2 7 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2018 2 7 成功激活

    2025年5月24日
    0
  • kafka删除topic方式

    kafka删除topic方式工作中因为各种原因,topic中消息堆积的太多或者kafka所在磁盘空间满了等。可能需要彻底清理一下kafkatopic。cd/opt/kafka/kafka_2.10-0.10.2.2/bin列出所有topic:./kafka-topics.sh–zookeeperip:2181-list其实就是检查zk上节点的/brokers/topics子节点,打印出来。创建topic…

    2022年10月17日
    0

发表回复

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

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