Go-Callvis는 대화식보기를 사용하여 GO 프로그램의 통화 그래프를 시각화하는 데 도움이되는 개발 도구입니다.
이 도구의 목적은 개발자에게 통화 그래프의 데이터와 패키지 및 유형과의 관계를 사용하여 GO 프로그램의 시각적 개요를 제공하는 것입니다. 이것은 코드의 복잡성이 훨씬 높거나 단순히 다른 사람의 코드를 이해하려고 할 때 큰 프로젝트에서 특히 유용합니다.

위 이미지의 소스 코드를 확인하십시오.
프로그램의 통화 그래프를 구성하기 위해 포인터 분석을 실행하고 데이터를 사용하여 DOT 형식으로 출력을 생성합니다.
-graphviz 플래그와 함께만 필요)Go-Callvis를 설치하려면 실행 :
# Latest release
go install github.com/ofabry/go-callvis@latest
# Development version
go install github.com/ofabry/go-callvis@master또는 저장소를 복제하고 소스 코드를 컴파일합니다.
# Clone repository
git clone https://github.com/ofabry/go-callvis.git
cd go-callvis
# Compile and install
make install집중된 패키지의 SVG 이미지를 제공하는 웹 서버에서 제공하는 대화식보기를 사용하려면 간단히 실행할 수 있습니다.
go-callvis <target package>
http 서버는 http : // localhost : 7878/기본적으로 옵션 -http="ADDR:PORT" 사용하여 HTTP 서버 주소를 변경합니다.
단일 출력 파일을 생성하려면 옵션 -file=<file path> 출력 파일 대상을 선택합니다.
출력 형식 기본값은 svg 로 기본적으로 옵션 -format=<svg|png|jpg|...> 사용하여 다른 출력 형식을 선택합니다.
Usage of go-callvis:
-debug
Enable verbose log.
-file string
output filename - omit to use server mode
-cacheDir string
Enable caching to avoid unnecessary re-rendering.
-focus string
Focus specific package using name or import path. (default "main")
-format string
output file format [svg | png | jpg | ...] (default "svg")
-graphviz
Use Graphviz's dot program to render images.
-group string
Grouping functions by packages and/or types [pkg, type] (separated by comma) (default "pkg")
-http string
HTTP service address. (default ":7878")
-ignore string
Ignore package paths containing given prefixes (separated by comma)
-include string
Include package paths with given prefixes (separated by comma)
-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
Omit calls to unexported functions.
-nostd
Omit calls to/from packages in standard library.
-rankdir
Direction of graph layout [LR | RL | TB | BT] (default "LR")
-skipbrowser
Skip opening browser.
-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
Include test code.
-version
Show version and exit.
모든 지원되는 옵션을 나열하려면 go-callvis -h 실행하십시오.
여기에서 다양한 유형의 출력에 대한 설명을 찾을 수 있습니다.
| 대표합니다 | 스타일 |
|---|---|
focused | 푸른 색 |
stdlib | 채색 |
other | 황 |
| 대표합니다 | 스타일 |
|---|---|
exported | 대담한 국경 |
unexported | 정상적인 경계 |
anonymous | 점선 테두리 |
| 대표합니다 | 스타일 |
|---|---|
internal | 검은 색 |
external | 갈색 |
static | 실선 |
dynamic | 점선 |
regular | 간단한 화살표 |
concurrent | 원이 있는 화살표 |
deferred | 다이아몬드 와 화살표 |
다음은 프로젝트 동기화의 예입니다.

더 많은 예제 및 중고 명령 옵션을 확인하십시오.
Gophers.slack.com에서 #go-callvis 채널에 가입하십시오. ( 아직 회원이 아님? 초대 받기)
버그를 찾았거나 제안이 있습니까?
프로젝트에 기여하고 싶습니까?
이 프로젝트의 이상적인 목표는 통화 그래프 데이터를 로컬로 저장하고 종속성 트리의 모든 패키지에 대한 통화 그래프에 빠르게 액세스 할 수있는 웹 앱을 만드는 것입니다. 처음에는 패키지 간의 전체 종속성에 대한 대화식 맵을 표시 한 다음 특정 패키지를 선택하면 통화 그래프를 표시하고 출력을 동적으로 변경할 수있는 다양한 옵션을 제공합니다.