diff --git a/package_ctx.go b/package_ctx.go index e0a03c860a583eebae15fc06a54165e11af02643..c55152ab06115363853a44f24074dea3f60ccc90 100644 --- a/package_ctx.go +++ b/package_ctx.go @@ -158,8 +158,9 @@ func callerName(skip int) (pkgPath, funcName string, ok bool) { if n != 1 { return "", "", false } - - f := runtime.FuncForPC(pc[0]).Name() + frames := runtime.CallersFrames(pc[:]) + frame, _ := frames.Next() + f := frame.Function s := pkgPathRe.FindStringSubmatch(f) if len(s) < 3 { panic(fmt.Errorf("failed to extract package path and function name from %q", f))