This commit is contained in:
aozhiwei 2024-04-09 14:56:56 +08:00
parent a6abd190f9
commit 7f080f238e

View File

@ -213,23 +213,46 @@ func GetTypeName(v interface{}) string {
func PrintCallStack() {
// 获取当前函数的调用者信息
pc, file, line, ok := runtime.Caller(1)
if !ok {
fmt.Println("runtime.Caller error")
return
}
funcName := runtime.FuncForPC(pc).Name()
fmt.Printf("Function: %s\nFile: %s\nLine: %d\n", funcName, file, line)
// 使用Stack打印完整的调用栈信息可以用于debug
buf := make([]byte, 1024)
for {
n := runtime.Stack(buf, false)
if n < len(buf) {
break
pc, file, line, ok := runtime.Caller(1)
if !ok {
fmt.Println("runtime.Caller error")
return
}
buf = make([]byte, 2*len(buf))
}
fmt.Println(string(buf))
funcName := runtime.FuncForPC(pc).Name()
fmt.Printf("Function: %s\nFile: %s\nLine: %d\n", funcName, file, line)
// 使用Stack打印完整的调用栈信息可以用于debug
buf := make([]byte, 1024)
for {
n := runtime.Stack(buf, false)
if n < len(buf) {
break
}
buf = make([]byte, 2*len(buf))
}
fmt.Println(string(buf))
}
func GetCallStack() string {
// 获取当前函数的调用者信息
pc, file, line, ok := runtime.Caller(1)
if !ok {
fmt.Println("runtime.Caller error")
return ""
}
funcName := runtime.FuncForPC(pc).Name()
fmt.Printf("Function: %s\nFile: %s\nLine: %d\n", funcName, file, line)
// 使用Stack打印完整的调用栈信息可以用于debug
buf := make([]byte, 1024)
for {
n := runtime.Stack(buf, false)
if n < len(buf) {
break
}
buf = make([]byte, 2*len(buf))
}
return string(buf)
}