# go-callvis **Repository Path**: dmall/go-callvis ## Basic Information - **Project Name**: go-callvis - **Description**: go源码分析依赖图展示工具 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-10-23 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

go-callvis is a development tool to help visualize call graph of a Go program using interactive view.
--- ## Introduction The purpose of this tool is to provide developers with a visual overview of a Go program using data from call graph and its relations with packages and types. This is especially useful in larger projects where the complexity of the code much higher or when you are just simply trying to understand code of somebody else. ### Features - focus specific package in the program - group functions by package and/or methods by type - filter packages to specific import path prefixes - omit various types of function calls - :boom: **NEW!** interactive view using HTTP server that serves SVG images with links to dynamically change focused package ### Output preview [](https://raw.githubusercontent.com/TrueFurby/go-callvis/master/images/main.png) > Check out the [source code](examples/main) for the above image. ### How it works It runs [pointer analysis](https://godoc.org/golang.org/x/tools/go/pointer) to construct the call graph of the program and uses the data to generate output in [dot format](http://www.graphviz.org/content/dot-language), which can be rendered with Graphviz tools. ## Reference guide Here you can find descriptions for various types of output. ### Packages / Types |Represents | Style| |----------: | :-------------| |`focused` | **blue** color| |`stdlib` | **green** color| |`other` | **yellow** color| ### Functions / Methods |Represents | Style| |-----------: | :--------------| |`exported` | **bold** border| |`unexported` | **normal** border| |`anonymous` | **dotted** border| ### Calls |Represents | Style| |-----------: | :-------------| |`internal` | **black** color| |`external` | **brown** color| |`static` | **solid** line| |`dynamic` | **dashed** line| |`regular` | **simple** arrow| |`concurrent` | arrow with **circle**| |`deferred` | arrow with **diamond**| ## Quick start #### Requirements - [Go](https://golang.org/dl/) 1.8+ - [Graphviz](http://www.graphviz.org/download/) ### Installation ```sh go get -u github.com/TrueFurby/go-callvis cd $GOPATH/src/github.com/TrueFurby/go-callvis && make ``` ### Usage `go-callvis [flags]