设为首页 加入收藏

TOP

go 代码的调试---打印调用堆栈
2017-10-30 06:06:57 】 浏览:36
Tags:代码 调试 --- 打印 调用 堆栈

本文介绍如何打印调用堆栈进行go代码的调试。

打印堆栈使用的runtime package中的Stack()函数

func Stack(buf []byte, all bool) int
Stack formats a stack trace of the calling goroutine into buf and returns the number of bytes written to buf. If all is true, Stack formats stack traces of all other goroutines into buf after the trace for the current goroutine.

example

package main

import (
        "runtime"
        "time"
        "fmt"
)

func main() {

        go power1()

        for {
                time.Sleep(time.Duration(1)*time.Minute)
        }

}




func power1(){
        var buf [1024]byte

        fmt.Println("power1.....")

        n := runtime.Stack(buf[:], true)

        fmt.Println(string(buf[:]), n)

}

输出结果:

power1.....
goroutine 5 [running]:
main.power1()
/home/lanyang/src/t.go:29 +0xec
created by main.main
/home/lanyang/src/t.go:14 +0x3c

goroutine 1 [sleep]:
time.Sleep(0xdf8475800)
/home/lanyang/src/t.go:59 +0x107
main.main()
/home/lanyang/src/t.go:17 +0x4f
303

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Go语言中slice使用注意事项 下一篇Go 终极指南:编写一个 Go 工具

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

最新文章

热门文章

C 语言

C++基础

windows编程基础

linux编程基础

C/C++面试题目