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


相关推荐

  • VHDL与Verilog的混合设计[通俗易懂]

    VHDL与Verilog的混合设计[通俗易懂]VHDL调用Verilog模块的时候,要在实例化模块前,加上“verilogmodelGM:”VHDL调用verlogverilogmodule:modulem(a,b,c);inputa,b;outputc;…endmodule调用如下:compoentmport(a:instd_logic;…

    2022年9月18日
  • java中的局部变量和全局变量哪个优先_java中成员变量是全局变量吗

    java中的局部变量和全局变量哪个优先_java中成员变量是全局变量吗Java变量java中主要有如下几种类型的变量:一、局部变量只在特定的过程或函数中可以访问的变量,被称为局部变量。与局部变量相对应的,是全局变量。全局变量就是从定义的位置起,作用域覆盖整个程序范围的变量。局部变量可以和全局变量重名,但是局部变量会屏蔽全局变量。在函数内引用这个变量时,会用到同名的局部变量,而不会

    2022年8月21日
  • 电商网站的价格大概多少钱一个_电子商务网站报价

    电商网站的价格大概多少钱一个_电子商务网站报价做一个电商网站需要多少钱?一、服务器购买、微信公众号认证、短信接口、物流接口、第三方支付接口费率等等。拿服务器来说,有一般IDC公司的虚拟主机,云虚拟主机、独立ECS,价格会有天壤之别,那具体根据您后期访问用户量和稳定性本身来选择,,几百到几千不等。二、功能开发费用电商平台的主要费用就是根据用户需要哪些功能进行定制开发来评估费用的,这其实又大致分为两大类。第一,必备功能。电商平台里面的必备功能有:会员注册登录、商品分类展示、在线支付购物车、订单管理等。第二、体验功能。体验功能主要是便于电商平台

    2022年10月1日
  • pycharm使用anaconda的虚拟环境_pycharm解释器为空

    pycharm使用anaconda的虚拟环境_pycharm解释器为空项目场景:在pycharm中新建项目,如果需要新建python环境时的全部操作问题描述:显示所有的python解释器:condainfo-eanaconda已经安装好了,创建新的python环境:condacreate–namepython37python=3.7#创建一个名字为python37,版本是python3.7的新环境,conda会自动安装3.7的最新版本;它会把新安装的python环境放在anaconda3的envs目录下:…

    2022年8月26日
  • linux命令查看所有进程_获取当前进程句柄

    linux命令查看所有进程_获取当前进程句柄查看系统默认的最大文件句柄数,系统默认是1024#ulimit-n1024查看当前进程打开了多少句柄数#lsof-n|awk‘{print$2}’|sort|uniq-c|sort-nr|more13124204 5724244  5724231  …其中第一列是打开的句柄数,第二列是进程ID。可以根据ID号来查看进程名。#psaef|grep24204…

    2022年10月17日
  • 版图设计

    版图设计一、电路-版图-掩膜-光刻之间关系1.什么是版图集成电路制造工艺中,通过光刻和刻蚀将掩膜版上的图形转移到硅片上。这种制造集成电路时使用的掩膜版上的几何图形定义为集成电路的版图。集成电路制造厂

    2022年8月1日

发表回复

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

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