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,….

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Python爬虫原理

    Python爬虫原理前言简单来说互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML、JS、CSS代码返回给浏览器,这些代码经过浏览器解析、渲染,将丰富多彩的网页呈现我们眼前;一、爬虫是什

  • ora-01007变量不在选择列表中_oracle存储过程变量赋值

    ora-01007变量不在选择列表中_oracle存储过程变量赋值使用oracle数据库过程中,偶尔遇到ORA-01008:并非所有变量都已绑定这个错误,此时应该查检sql中是否有以下情况:1、varsql=string.Format(“select*fromstudenttwheret.name=‘{0}‘andt.address=‘{1}‘”,name);此时编译不会报错,当执行sql时就会报“ORA-01008:并非所有…

  • mac哪个虚拟机最好用_mac装双系统还是虚拟机好

    mac哪个虚拟机最好用_mac装双系统还是虚拟机好刚买了苹果电脑的用户,经常会因为用不惯苹果系统而想换Windows系统,实际上也的确是,许多流行游戏或软件都暂不支持Mac系统,可行的办法是安装mac虚拟机或是双系统,以供支持在苹果电脑上使用Windows应用。下面本文就来讲讲mac虚拟机哪个好用,mac双系统和虚拟机哪个好。

  • Linux——vi命令详解[通俗易懂]

    Linux——vi命令详解[通俗易懂]vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。

  • clion激活码 2021.4.14_通用破解码

    clion激活码 2021.4.14_通用破解码,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • linux ora12154,ORA-12154: TNS:could not resolve the connect identifier specified

    linux ora12154,ORA-12154: TNS:could not resolve the connect identifier specifiedMylistener.orafileisbelowandmyOSisXPPro2002ServicePack2.Myhostnameisict_tjuttelstadandmyPrimaryDNSSuffixisideorlando.org.Ihavetriedseveralitemsforthehostnameentryinm…

发表回复

您的电子邮箱地址不会被公开。

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