@@ -220,39 +220,41 @@ type g struct {
220
220
stackguard0 uintptr // offset known to liblink
221
221
stackguard1 uintptr // offset known to liblink
222
222
223
- _panic * _panic // innermost panic - offset known to liblink
224
- _defer * _defer // innermost defer
225
- stackAlloc uintptr // stack allocation is [stack.lo,stack.lo+stackAlloc)
226
- sched gobuf
227
- syscallsp uintptr // if status==Gsyscall, syscallsp = sched.sp to use during gc
228
- syscallpc uintptr // if status==Gsyscall, syscallpc = sched.pc to use during gc
229
- stkbar []stkbar // stack barriers, from low to high
230
- stkbarPos uintptr // index of lowest stack barrier not hit
231
- param unsafe.Pointer // passed parameter on wakeup
232
- atomicstatus uint32
233
- goid int64
234
- waitsince int64 // approx time when the g become blocked
235
- waitreason string // if status==Gwaiting
236
- schedlink guintptr
237
- preempt bool // preemption signal, duplicates stackguard0 = stackpreempt
238
- paniconfault bool // panic (instead of crash) on unexpected fault address
239
- preemptscan bool // preempted g does scan for gc
240
- gcscandone bool // g has scanned stack; protected by _Gscan bit in status
241
- gcscanvalid bool // false at start of gc cycle, true if G has not run since last scan
242
- throwsplit bool // must not split stack
243
- raceignore int8 // ignore race detection events
244
- m * m // for debuggers, but offset not hard-coded
245
- lockedm * m
246
- sig uint32
247
- writebuf []byte
248
- sigcode0 uintptr
249
- sigcode1 uintptr
250
- sigpc uintptr
251
- gopc uintptr // pc of go statement that created this goroutine
252
- startpc uintptr // pc of goroutine function
253
- racectx uintptr
254
- waiting * sudog // sudog structures this g is waiting on (that have a valid elem ptr)
255
- readyg * g // scratch for readyExecute
223
+ _panic * _panic // innermost panic - offset known to liblink
224
+ _defer * _defer // innermost defer
225
+ stackAlloc uintptr // stack allocation is [stack.lo,stack.lo+stackAlloc)
226
+ sched gobuf
227
+ syscallsp uintptr // if status==Gsyscall, syscallsp = sched.sp to use during gc
228
+ syscallpc uintptr // if status==Gsyscall, syscallpc = sched.pc to use during gc
229
+ stkbar []stkbar // stack barriers, from low to high
230
+ stkbarPos uintptr // index of lowest stack barrier not hit
231
+ param unsafe.Pointer // passed parameter on wakeup
232
+ atomicstatus uint32
233
+ goid int64
234
+ waitsince int64 // approx time when the g become blocked
235
+ waitreason string // if status==Gwaiting
236
+ schedlink guintptr
237
+ preempt bool // preemption signal, duplicates stackguard0 = stackpreempt
238
+ paniconfault bool // panic (instead of crash) on unexpected fault address
239
+ preemptscan bool // preempted g does scan for gc
240
+ gcscandone bool // g has scanned stack; protected by _Gscan bit in status
241
+ gcscanvalid bool // false at start of gc cycle, true if G has not run since last scan
242
+ throwsplit bool // must not split stack
243
+ raceignore int8 // ignore race detection events
244
+ sysblocktraced bool // StartTrace has emitted EvGoInSyscall about this goroutine
245
+ sysexitticks int64 // cputicks when syscall has returned (for tracing)
246
+ m * m // for debuggers, but offset not hard-coded
247
+ lockedm * m
248
+ sig uint32
249
+ writebuf []byte
250
+ sigcode0 uintptr
251
+ sigcode1 uintptr
252
+ sigpc uintptr
253
+ gopc uintptr // pc of go statement that created this goroutine
254
+ startpc uintptr // pc of goroutine function
255
+ racectx uintptr
256
+ waiting * sudog // sudog structures this g is waiting on (that have a valid elem ptr)
257
+ readyg * g // scratch for readyExecute
256
258
257
259
// Per-G gcController state
258
260
gcalloc uintptr // bytes allocated during this GC cycle
@@ -320,6 +322,7 @@ type m struct {
320
322
waitlock unsafe.Pointer
321
323
waittraceev byte
322
324
waittraceskip int
325
+ startingtrace bool
323
326
syscalltick uint32
324
327
//#ifdef GOOS_windows
325
328
thread uintptr // thread handle
0 commit comments