代码拉取完成,页面将自动刷新
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)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。