status-go/vendor/github.com/anacrolix/missinggo/stack.go

24 lines
362 B
Go
Raw Permalink Normal View History

2022-03-10 09:44:48 +00:00
package missinggo
import (
"fmt"
"io"
"runtime"
)
func WriteStack(w io.Writer, stack []uintptr) {
for _, pc := range stack {
if pc == 0 {
break
}
pc--
f := runtime.FuncForPC(pc)
if f.Name() == "runtime.goexit" {
continue
}
file, line := f.FileLine(pc)
fmt.Fprintf(w, "# %s:\t%s:%d\n", f.Name(), file, line)
}
fmt.Fprintf(w, "\n")
}