Source file
src/cmd/trace/viewer.go
1
2
3
4
5 package main
6
7 import (
8 "fmt"
9 "internal/trace"
10 "internal/trace/traceviewer"
11 "slices"
12 )
13
14
15
16 func viewerFrames(stk trace.Stack) []trace.StackFrame {
17 return slices.Collect(stk.Frames())
18 }
19
20 func viewerGState(state trace.GoState, inMarkAssist bool) traceviewer.GState {
21 switch state {
22 case trace.GoUndetermined:
23 return traceviewer.GDead
24 case trace.GoNotExist:
25 return traceviewer.GDead
26 case trace.GoRunnable:
27 return traceviewer.GRunnable
28 case trace.GoRunning:
29 return traceviewer.GRunning
30 case trace.GoWaiting:
31 if inMarkAssist {
32 return traceviewer.GWaitingGC
33 }
34 return traceviewer.GWaiting
35 case trace.GoSyscall:
36
37 return traceviewer.GRunning
38 default:
39 panic(fmt.Sprintf("unknown GoState: %s", state.String()))
40 }
41 }
42
View as plain text