• golang获取调用者的方法名及所在源码行数


    package main
    
    import "runtime"
    import "log"
    
    func main() {
        test()
    }
    
    func test() {
        test2()
    }
    
    func test2(){
        pc,file,line,ok := runtime.Caller(2)
        log.Println(pc)
        log.Println(file)
        log.Println(line)
        log.Println(ok)
        f := runtime.FuncForPC(pc)
        log.Println(f.Name())
        
        pc,file,line,ok = runtime.Caller(0)
        log.Println(pc)
        log.Println(file)
        log.Println(line)
        log.Println(ok)
        f = runtime.FuncForPC(pc)
        log.Println(f.Name())
        
        pc,file,line,ok = runtime.Caller(1)
        log.Println(pc)
        log.Println(file)
        log.Println(line)
        log.Println(ok)
        f = runtime.FuncForPC(pc)
        log.Println(f.Name())
    }

    输出

    2011/12/30 22:55:17 8216
    2011/12/30 22:55:17 /Users/jarcher/workspace/go/test/src/linetest.go
    2011/12/30 22:55:17 7
    2011/12/30 22:55:17 true
    2011/12/30 22:55:17 main.main
    2011/12/30 22:55:17 9065
    2011/12/30 22:55:17 /Users/jarcher/workspace/go/test/src/linetest.go
    2011/12/30 22:55:17 23
    2011/12/30 22:55:17 true
    2011/12/30 22:55:17 main.test2
    2011/12/30 22:55:17 8241
    2011/12/30 22:55:17 /Users/jarcher/workspace/go/test/src/linetest.go
    2011/12/30 22:55:17 11
    2011/12/30 22:55:17 true
    2011/12/30 22:55:17 main.test
  • 相关阅读:
    软件测试入门知识
    QTP小应用一则
    频分时分波分码分
    解析UML9种图的作用
    OSI七层模型
    暑期实习心得
    0724工作小结 SQL查库是重点
    0723脚本存储过程的学习
    0722工作日志
    工作之余回味了曾经的写过的小说
  • 原文地址:https://www.cnblogs.com/wangxusummer/p/4270388.html
Copyright © 2020-2023  润新知