一、go-callvis介紹
Go-callvis是一種golang程式碼視覺化工具,用於幫助使用互動式檢視視覺化 Go 程式的呼叫圖。此工具的目的是為開發人員提供一個視覺化的 Go 程式概覽,使用來自呼叫圖的資料及其與包和型別的關係。這在大型專案中特別有用,因為這些專案的程式碼複雜度要高得多,或者只是簡單地試圖理解其他人的程式碼。
二、執行依賴
- Go 1.13+
- Graphviz (optional, required only with -graphviz flag)
三、安裝
go get -u github.com/ofabry/go-callvis
或者是
git clone https://github.com/ofabry/go-callvis.git
cd go-callvis
make install
安裝好的 go-callvis 可執行檔案會在$GOPATH/bin目錄下
四、使用方法
- 執行
go-callvis -h
可以列出所有受支援的選項,如下
Usage of go-callvis:
-debug
Enable verbose log.
輸出詳細日誌
-file string
output filename - omit to use server mode
以檔案新式輸出結果,並將忽略server互動模式
-cacheDir string
Enable caching to avoid unnecessary re-rendering.
啟用快取以避免不必要的重新渲染。
-focus string
Focus specific package using name or import path. (default "main")
關注特定的程式包,預設為“main”包
-format string
output file format [svg | png | jpg | ...] (default "svg")
輸出檔案的格式,[svg | png | jpg | ...],預設為svg
-graphviz
Use Graphviz's dot program to render images.
使用Graphviz渲染影像
-group string
Grouping functions by packages and/or types [pkg, type] (separated by comma) (default "pkg")
分組功能,根據包 與/或 型別分組 [pkg, type] (用逗號分開) (預設 "pkg"),例如 -group pkg,type
-http string
HTTP service address. (default ":7878")
HTTP 服務地址 (預設 ":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)
最小邊長(用於更寬的輸出)。 (預設2)
-nodesep float
Minimum space between two adjacent nodes in the same rank (for taller output). (default 0.35)
同一等級中兩個相鄰節點之間的最小間距(用於更高的輸出)。 (預設0.35)
-nointer
Omit calls to unexported functions.
忽略對未匯出函式的呼叫。(忽略首字母小寫的函式)
-nostd
Omit calls to/from packages in standard library.
忽略標準庫的呼叫
-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
在構建期間更適合的構建標記
有關構建標記的更多資訊,請參閱go / build軟體包的文件中的構建約束說明。
-tests
Include test code.
包含測試程式碼
-version
Show version and exit.
顯示版本號
- 命令列格式:
go-callvis [可選引數] <包路徑>
- 預設情況下,輸出的圖在 http://localhost:7878/,可使用選項
-http="ADDR:PORT"
更改HTTP伺服器地址。 靜態輸出:
- 要生成單個輸出檔案,使用選項
-file=<file path>
選擇輸出檔案目標。 - 輸出格式預設為svg,使用選項
-format=<svg|png|jpg|...>
選擇其他輸出格式。
- 要生成單個輸出檔案,使用選項
使用示例:
- 解析main包
go-callvis -skipbrowser -nostd ./
- 解析testPkg包
go-callvis -group pkg,type -focus testPkg github.com/專案具體路徑
- 解析main包
五、效果圖說明
- 規範說明
參考
附:有不足、疏漏歡迎指出,我可以借鑑學習後補充。