// 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 }