Merge branch 'bep-patch-1'
diff --git a/errors.go b/errors.go index 7421f32..8617bee 100644 --- a/errors.go +++ b/errors.go
@@ -82,7 +82,7 @@ // // if err, ok := err.(stackTracer); ok { // for _, f := range err.StackTrace() { -// fmt.Printf("%+s:%d", f) +// fmt.Printf("%+s:%d\n", f, f) // } // } //
diff --git a/stack.go b/stack.go index cb8024b..23321e9 100644 --- a/stack.go +++ b/stack.go
@@ -11,10 +11,6 @@ // Frame represents a program counter inside a stack frame. type Frame runtime.Frame -// pc returns the program counter for this frame; -// multiple frames may have the same PC value. -func (f Frame) pc() uintptr { return runtime.Frame(f).PC } - // file returns the full path to the file that contains the // function for this Frame's pc. func (f Frame) file() string { @@ -61,7 +57,7 @@ case 'd': fmt.Fprintf(s, "%d", f.line()) case 'n': - name := runtime.FuncForPC(f.pc()).Name() + name := runtime.Frame(f).Function io.WriteString(s, funcname(name)) case 'v': f.Format(s, 's')
diff --git a/stack_test.go b/stack_test.go index c444be0..975cb1a 100644 --- a/stack_test.go +++ b/stack_test.go
@@ -10,12 +10,12 @@ type X struct{} -//go:noinline +// val returns a Frame pointing to itself. func (x X) val() Frame { return caller() } -//go:noinline +// ptr returns a Frame pointing to itself. func (x *X) ptr() Frame { return caller() }