GO語言————6.10 使用閉包除錯
6.10 使用閉包除錯
當您在分析和除錯複雜的程式時,無數個函式在不同的程式碼檔案中相互呼叫,如果這時候能夠準確地知道哪個檔案中的具體哪個函式正在執行,對於除錯是十分有幫助的。您可以使用 runtime
或 log
包中的特殊函式來實現這樣的功能。包 runtime
中的函式 Caller()
提供了相應的資訊,因此可以在需要的時候實現一個 where()
閉包函式來列印函式執行的位置:
where := func() {
_, file, line, _ := runtime.Caller(1)
log.Printf("%s:%d", file, line)
}
where()
// some code
where()
// some more code
where()
您也可以設定 log
包中的 flag 引數來實現:
log.SetFlags(log.Llongfile)
log.Print("")
或使用一個更加簡短版本的 where
函式:
var where = log.Print
func func1() {
where()
... some code
where()
... some code
where()
}
相關文章
- GO語言————6.8 閉包Go
- Go 語言閉包詳解Go
- Go 語言 udpproxy 除錯工具GoUDP除錯
- Go 語言 WebSocket 除錯工具GoWeb除錯
- Go 語言 udp server 除錯工具GoUDPServer除錯
- Go 語言 httpdump server 除錯工具GohttpdServer除錯
- Go 語言開發除錯中階Go除錯
- 【Go語言學習】匿名函式與閉包Go函式
- go語言採坑:閉包共享變數問題Go變數
- Go | 閉包的使用Go
- Go語言開發除錯系列博文3篇Go除錯
- 除錯Go語言的核心轉儲(Core Dumps)除錯Go
- golang語言除錯Golang除錯
- [06 Go語言基礎-包]Go
- go語言reflect包使用的幾個場景Go
- go語言使用Go
- 用“揹包”去理解Go語言中的閉包Go
- go語言偵錯程式Go
- C語言——gdb除錯C語言除錯
- go語言處理TCP拆包/粘包GoTCP
- go 學習筆記之10 分鐘簡要理解 go 語言閉包技術Go筆記
- GO語言————6.9 應用閉包:將函式作為返回值Go函式
- Go 語言操作 MySQL 之 SQLX 包GoMySql
- Go 語言 context 包實踐GoContext
- 【Go】Go語言學習筆記-3-包Go筆記
- Go語言基於go module方式管理包(package)GoPackage
- 使用 gdb 工具除錯 Go除錯Go
- Go語言ORM包:使用worm構造查詢條件GoWorm
- 2-2 Go語言的包(package)GoPackage
- go語言錯題及答案整理Go
- go 閉包函式Go函式
- Go 語言使用.NET 包實現 Socket 網路程式設計Go程式設計
- Go 語言 sync 包的應用詳解Go
- GO語言————4.7 strings和strconv 包Go
- GO語言手動處理TCP粘包GoTCP
- Go語言Context包原始碼學習GoContext原始碼
- Go語言————1、初識GO語言Go
- c 語言除錯方法(除錯 PHP 底層、擴充套件)除錯PHP套件