go语言可视化函数调用关系

1、介绍

下面介绍一款使用go分析开源项目非常实用的工具,它可以使用Graphviz可视化Go程序调用图。

下面可以欣赏下docker的函数调用关系,非常漂亮,简洁,每一层的调用逻辑都非常清除,这个工具真的是一款不可多得的好工具。

下面图片的内容可能太多,导致看的不是很清除。源图地址:点击查看原图



2、安装

需要 Go 1.13+
Graphviz(可选,仅与-Graphviz标志一起需要)
GraphvizLinuxWindows

windows需要下载可行性文件,其他平台:

shell   $ sudo apt install graphviz
shell   $ sudo yum install graphviz
shell   $ sudo apt install graphviz
shell   $ sudo yum install graphviz
  • Mac
shell   $ brew install graphviz
go-callvis

直接执行以下命令:

3、使用

先看看帮助文档:

简单使用方式:

这里 main package 是包含代码的main函数所在的包

先看下我的目录结构:

  1. 直接查看主函数:采用默认分组,pkg

系统会自动打开浏览器:



svgsvg
  1. 导出图片:



  1. 使用pkg和type分开显示



go-callvis -group pkg,type -ignore fastgee main,goginsh go-callvis -group pkg,type -ignore github.com/gin-gonic/gin main.go
focus
go-callvis -focus=fastgee/ -group pkg,type
-limit
go-callvis  -group pkg,type -limit fastgee fastgee/



其他的命令,请自行探索。