golang/call-stack.go

20 lines
402 B
Go
Raw Normal View History

2024-02-16 15:53:14 +01:00
// call-stack.go
package golang
import (
"runtime"
)
func Trace(upStack int) (source string, line int, function string) {
pc := make([]uintptr, 15)
n := runtime.Callers(upStack, pc)
frames := runtime.CallersFrames(pc[:n])
frame, _ := frames.Next()
source = frame.File
line = frame.Line
function = frame.Function
// fmt.Printf("%s:%d %s\n", frame.File, frame.Line, frame.Function)
return
}