• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

go-callvis:Go调用关系图(callgraph)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

用过SourceInsight、understand等软件的同学一定知道call graph的功能,转go开发后我用的是vscode和goland,一直在寻找调用关系图的功能。本文介绍的是go-callvis的使用。官网:https://github.com/ofabry/go-callvis

功能说明:

  • 支持Go模块!
  • 重点关注程序中的特定程序包
  • 单击程序包以使用交互式查看器快速切换焦点
  • 功能分组:按包和(或)方法类型
  • 通过路径前缀过滤包
  • 可选忽略标准库中的函数
  • 可选忽略各种类型的函数调用

运行要求:

  • go 版本:1.13+
  • Graphviz(可选,仅带-graphviz标志才需要)

注:我在使用时发现对于使用了cgo的包分析时效果不好。

二、使用说明

2.1 快速安装

go get -u github.com/ofabry/go-callvis # or git clone https://github.com/ofabry/go-callvis.git cd go-callvis && make install

2.2 使用说明

go-callvis [可选参数] <包路径>

1)使用浏览器交互展示

默认情况下,HTTP服务器在http://localhost:7878/上侦听,请使用选项-http="ADDR:PORT"更改HTTP服务器地址。

2)静态输出

要生成单个输出文件,使用选项-file=<file path>选择输出文件目标。

输出格式默认为svg,使用选项-format=<svg|png|jpg|...>选择其他输出格式。

3)其他参数

-debug
         输出详细日志
   -file string
         以文件新式输出结果,并将忽略server交互模式
   -focus string
         Focus specific package using name or import path. (default "main")
   -format string
         输出文件的格式 [svg | png | jpg | ...] (默认 "svg")
   -graphviz
         使用Graphviz渲染图像
   -group string
         分组功能,根据包 与/或 类型分组 [pkg, type] (用逗号分开) (默认 "pkg"),例如 -group pkg,type
   -http string
         HTTP 服务地址 (默认 ":7878")
   -ignore string
        忽略包含给定前缀的包路径(用逗号分开)
   -include string
         包含具有给定前缀的包路径 (用逗号分开)
   -limit string
         Limit package paths to given prefixes (separated by comma)
   -minlen uint
         Minimum edge length (for wider output). (default 2)
   -nodesep float
         Minimum space between two adjacent nodes in the same rank (for taller output). (default 0.35)
   -nointer
         忽略对未导出函数的调用。
   -nostd
         忽略标准库的调用
   -skipbrowser
         跳过打开浏览器
   -tags build tags
         a list of build tags to consider satisfied during the build. For more information about build tags, see the description of build constraints in the documentation for the go/build package
   -tests
         包含测试代码
   -version
         显示版本号

 

4、使用示例:
1)解析main包
go-callvis -skipbrowser -nostd ./


2)解析testPkg包
go-callvis -group pkg,type -focus testPkg github.com/项目具体路径 

 

2.3 效果图说明

效果图说明:

 

参考:

https://www.lagou.com/lgeduarticle/96545.html

https://github.com/ofabry/go-callvis


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
GO语言测试发布时间:2022-07-10
下一篇:
go-遍历文件夹及文件夹下文件比较工具总结发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap