This commit is contained in:
parent
1405d2b8b1
commit
b7fdd56a8b
6 changed files with 172 additions and 0 deletions
30
src/errors/stack.go
Normal file
30
src/errors/stack.go
Normal file
|
@ -0,0 +1,30 @@
|
|||
package errors
|
||||
|
||||
import (
|
||||
"runtime"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// stack generates a stack trace.
|
||||
func stack() string {
|
||||
var (
|
||||
final []string
|
||||
buffer = make([]byte, 4096)
|
||||
n = runtime.Stack(buffer, false)
|
||||
stack = string(buffer[:n])
|
||||
lines = strings.Split(stack, "\n")
|
||||
)
|
||||
|
||||
for i := 6; i < len(lines); i += 2 {
|
||||
line := strings.TrimSpace(lines[i])
|
||||
space := strings.LastIndex(line, " ")
|
||||
|
||||
if space != -1 {
|
||||
line = line[:space]
|
||||
}
|
||||
|
||||
final = append(final, line)
|
||||
}
|
||||
|
||||
return strings.Join(final, "\n")
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue