zoukankan      html  css  js  c++  java
  • golang在日志中打印堆栈信息

    使用debug.Stack()

    package main
     
    import (
        "fmt"
        "runtime/debug"
    )
     
    func test1() {
        test2()
    }
     
    func test2() {
        test3()
    }
     
    func test3() {
        // 可以通过 debug.PrintStack() 直接打印,也可以通过 debug.Stack() 方法获取堆栈然后自己打印
        fmt.Printf("%s", debug.Stack())
        debug.PrintStack()
    }
     
    func main() {
        test1()
    }
     
    ------------------------------------
     
    $ go run test_stacktrace.go
     
    goroutine 1 [running]:
    runtime/debug.Stack(0x0, 0x0, 0x0)
            /usr/lib/golang/src/runtime/debug/stack.go:24 +0x80
    main.test3()
            /tmp/test_stacktrace.go:17 +0x24
    main.test2()
            /tmp/test_stacktrace.go:13 +0x14
    main.test1()
            /tmp/test_stacktrace.go:9 +0x14
    main.main()
            /tmp/test_stacktrace.go:22 +0x14
     
    goroutine 1 [running]:
    runtime/debug.Stack(0x0, 0x0, 0x0)
            /usr/lib/golang/src/runtime/debug/stack.go:24 +0x80
    runtime/debug.PrintStack()
            /usr/lib/golang/src/runtime/debug/stack.go:16 +0x18
    main.test3()
            /tmp/test_stacktrace.go:18 +0x101
    main.test2()
            /tmp/test_stacktrace.go:13 +0x14
    main.test1()
            /tmp/test_stacktrace.go:9 +0x14
    main.main()
            /tmp/test_stacktrace.go:22 +0x14
     
  • 相关阅读:
    维控PLC与电流变送器modbus通讯获取电流变送器数据
    openmv第一次调试
    电流变送器(互感器)
    物联网数据采集
    STM32编程环境配置(kile5)
    开发日记9
    开发日记8
    开发日记7
    开发日记6
    开发日记5
  • 原文地址:https://www.cnblogs.com/peteremperor/p/14467192.html
Copyright © 2011-2022 走看看