go-callvis

Visualize call graph of a Go program using Graphviz

View the Project on GitHub ondrajz/go-callvis

Examples

This document contains examples of various projects from Github.

Projects

Syncthing

syncthing example

go get -u github.com/syncthing/syncthing/
cd $GOPATH/src/github.com/syncthing/syncthing

# Syncthing needs a special build process, so don't forget to call build.sh
./build.sh

Generate graph and launch webserver

go-callvis -focus upgrade -group pkg,type -limit github.com/syncthing/syncthing -ignore github.com/syncthing/syncthing/lib/logger github.com/syncthing/syncthing/cmd/syncthing

Focusing package upgrade

syncthing example output

go-callvis -format=png -file=syncthing_focus -focus upgrade -limit github.com/syncthing/syncthing github.com/syncthing/syncthing/cmd/syncthing

Grouping by packages

syncthing example output pkg

Generate graph focused on module ‘upgrade’, output to PNG file

go-callvis -format=png -file=syncthing_group -focus upgrade -group pkg -limit github.com/syncthing/syncthing github.com/syncthing/syncthing/cmd/syncthing

Ignoring package logger

syncthing example output ignore

Generate graph focused on module ‘upgrade’ and ignoring ‘logger’, output to webserver

go-callvis -focus upgrade -group pkg -ignore github.com/syncthing/syncthing/lib/logger -limit github.com/syncthing/syncthing github.com/syncthing/syncthing/cmd/syncthing

Docker

docker example

go-callvis -format=png -file=docker -limit github.com/docker/docker -ignore github.com/docker/docker/vendor github.com/docker/docker/cmd/docker | dot -Tpng -o docker.png

Travis CI Worker

travis-example

go-callvis -format=svg -file=travis -minlen 3 -nostd -group type,pkg -focus worker -limit github.com/travis-ci/worker -ignore github.com/travis-ci/worker/vendor github.com/travis-ci/worker/cmd/travis-worker && exo-open travis.svg