Ai
1 Star 3 Fork 0

TimAndy/routine

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
stack.go 861 Bytes
一键复制 编辑 原始数据 按行查看 历史
package routine
import (
"runtime"
"strings"
)
const (
runtimePkgPrefix = "runtime."
runtimePanic = "panic"
)
func captureStackTrace(skip int, depth int) []uintptr {
pcs := make([]uintptr, depth)
return pcs[:runtime.Callers(skip+2, pcs)]
}
func showFrame(name string) bool {
return strings.IndexByte(name, '.') >= 0 && (!strings.HasPrefix(name, runtimePkgPrefix) || isExportedRuntime(name))
}
func skipFrame(name string, skipped bool) bool {
return !skipped && isPanicRuntime(name)
}
func isExportedRuntime(name string) bool {
const n = len(runtimePkgPrefix)
return len(name) > n && name[:n] == runtimePkgPrefix && 'A' <= name[n] && name[n] <= 'Z'
}
func isPanicRuntime(name string) bool {
const n = len(runtimePkgPrefix)
return len(name) > n && name[:n] == runtimePkgPrefix && strings.Contains(strings.ToLower(name[n:]), runtimePanic)
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/timandy/routine.git
git@gitee.com:timandy/routine.git
timandy
routine
routine
main

搜索帮助