diff options
Diffstat (limited to 'src/cmd/trace')
| -rw-r--r-- | src/cmd/trace/trace.go | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/cmd/trace/trace.go b/src/cmd/trace/trace.go index 7a61d5b412..fcba0cbc3f 100644 --- a/src/cmd/trace/trace.go +++ b/src/cmd/trace/trace.go @@ -576,7 +576,7 @@ func generateTrace(params *traceParams, consumer traceConsumer) error { fname := stk[0].Fn info.name = fmt.Sprintf("G%v %s", newG, fname) - info.isSystemG = strings.HasPrefix(fname, "runtime.") && fname != "runtime.main" + info.isSystemG = isSystemGoroutine(fname) ctx.gcount++ setGState(ev, newG, gDead, gRunnable) @@ -1125,6 +1125,12 @@ func (ctx *traceContext) buildBranch(parent frameNode, stk []*trace.Frame) int { return ctx.buildBranch(node, stk) } +func isSystemGoroutine(entryFn string) bool { + // This mimics runtime.isSystemGoroutine as closely as + // possible. + return entryFn != "runtime.main" && strings.HasPrefix(entryFn, "runtime.") +} + // firstTimestamp returns the timestamp of the first event record. func firstTimestamp() int64 { res, _ := parseTrace() |
